L-s*_*are 4 python merge dataframe pandas
我有两个数据帧:
df1:
top1 top2 top3
693541495124446625 US GB CN
912819499544441670 US CN TW
Run Code Online (Sandbox Code Playgroud)
df2:
US GB CN TW \ ...
693541495124446625 939.00 932.00 806.00 789.00 ...
912819499544441670 992.00 646.00 981.00 796.00 ...
Run Code Online (Sandbox Code Playgroud)
如何合并或迭代两个数据帧以获得以下结果:
top1 top2 top3
693541495124446625 'US 939.00' 'GB 932.00' 'CN 806.00'
912819499544441670 'US 992.00' 'CN 981.00' 'TW 796.00'
Run Code Online (Sandbox Code Playgroud)
我知道我可以迭代取 df1 值并[loc]通过几个 for 循环将该值作为列放在 df2 中,但是有没有优化的解决方案?
你可以试试这个 df.replace
u = df2.astype(str).radd(df2.columns+' ')
out = df1.T.replace(u.T).T
Run Code Online (Sandbox Code Playgroud)
或者:
u = df2.astype(str).radd(df2.columns+' ')
df1.T.replace(u.to_dict('index')).T
Run Code Online (Sandbox Code Playgroud)
print(out)
top1 top2 top3
693541495124446625 US 939.0 GB 932.0 CN 806.0
912819499544441670 US 992.0 CN 981.0 TW 796.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |