pandas - 多列上的 Lambda 函数
问题描述
我试图从我的 pandas data.frame 中的多个列中仅提取数字。
我可以一一列执行此操作,但是我想同时对多个列执行此操作
我复制的例子:
import pandas as pd
import re
import numpy as np
import seaborn as sns
df = sns.load_dataset('diamonds')
# Create columns one again
df['clarity2'] = df['clarity']
df.head()
df[['clarity', 'clarity2']].apply(lambda x: x.str.extract(r'(\d+)'))
解决方案
如果你想要一个元组
cols = ['clarity', 'clarity2']
tuple(df[col].str.extract(r'(\d+)') for col in cols)
如果你想要一份清单
cols = ['clarity', 'clarity2']
[df[col].str.extract(r'(\d+)') for col in cols]
将它们添加到原始数据中
df['digit1'], df['digit2'] = [df[col].str.extract(r'(\d+)') for col in cols]
推荐阅读
- r - 如何通过使用 REGEX 在 R 中的特殊字符之前和之后提取字符串来创建数据框
- mysql - 无法从 Spring Boot 应用程序运行 flyway 脚本,数据库为 docker 容器中的 Mysql
- r - 如何使用 R ggpairs 和 plotly 获得单个交互式相关散点图矩阵三角形
- python - 如何使用 alembic / SQLAlchemy 将表对象实例化为 bulk_insert 行
- java - JAVA 解组无类型的 SAML 属性
- mongodb - 您如何使用数据推送 docker 数据库映像?
- html - 插入为行时的可变长度项(符合表格布局)
- angular - Angular 6 .net Web Api No 'Access-Control-Allow-Origin' header 错误
- reactjs - React Datepicker 排除过去的日期
- amazon-web-services - CloudWatch 事件无法调用 lambda