Pandas 多列上的Lambdas函数

Pandas 多列上的Lambdas函数,pandas,lambda,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() d

我试图从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]

您是否能够共享示例数据帧和预期输出。可能还有其他方法。如何将这些新列添加到原始数据框?扩展了答案,将其添加回原始数据框