首页 > 解决方案 > 如何将方法应用于 Pandas 数据框

问题描述

我有这个数据框

   Col1              Col2

0  A (1000 EUR)  C ( 3000 USD)

1  B (2000 CHF)  D ( 4000 GBP)

我想将其转换为

   Col1  Col2

0  1000  3000

1  2000  4000

我知道如何为 1 列创建数据框(带索引),但不是为多列

此代码产生此结果

   Col1

0  1000

1  2000 

a = z['Col1'].str.split('(').str[-1].str.split().str[0].apply(pd.to_numeric,errors='coerce')

我如何修改上面的代码以添加 col2 (理想情况下使用矢量化而不是迭代)(所以理想情况下,我不想为每一列输入相同的代码)

标签: pythonpandasdataframe

解决方案


您可以str.extract在每一列上使用pd.concat并从结果中构建一个新的数据框:

x = np.concatenate([df[col].str.extract(r'(?<=\()\s*(\d+)') for col in df], axis=1)
pd.DataFrame(x, columns=df.columns)

   Col1  Col2
0  1000  3000
1  2000  4000

推荐阅读