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 (理想情况下使用矢量化而不是迭代)(所以理想情况下我不想为每一列输入相同的代码)
您可以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)