如何将方法应用于 Pandas Dataframe

zay*_*dar 2 python dataframe pandas

我有这个数据框

   Col1              Col2

0  A (1000 EUR)  C ( 3000 USD)

1  B (2000 CHF)  D ( 4000 GBP)
Run Code Online (Sandbox Code Playgroud)

我想将其转换为

   Col1  Col2

0  1000  3000

1  2000  4000
Run Code Online (Sandbox Code Playgroud)

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

这段代码产生这个结果

   Col1

0  1000

1  2000 

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

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

yat*_*atu 5

您可以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
Run Code Online (Sandbox Code Playgroud)