首页 > 解决方案 > 多列上的 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+)'))

标签: pandaslambda

解决方案


如果你想要一个元组

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]

推荐阅读