Leo*_*Rai 10 python merge concatenation dataframe pandas
假设我有两个数据框:
DF1:
A
0 a
1 b
Run Code Online (Sandbox Code Playgroud)
DF2:
A
0 a
1 c
Run Code Online (Sandbox Code Playgroud)
我想要的结果是联合两帧的与额外的列表示该行属于源数据帧.如果有重复项,应删除重复项,相应的额外列应显示两个来源:
A B
0 a df1, df2
1 b df1
2 c df2
Run Code Online (Sandbox Code Playgroud)
我可以得到连接数据框(df3)没有重复,如下所示:
import pandas as pd
df3=pd.concat([df1,df2],ignore_index=True).drop_duplicates().reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)
我想不出/找到一种方法可以控制哪个元素去哪里.如何添加额外的列?
非常感谢您的任何提示.
cs9*_*s95 12
合并indicator参数,并重新映射结果:
m = {'left_only': 'df1', 'right_only': 'df2', 'both': 'df1, df2'}
result = df1.merge(df2, on=['A'], how='outer', indicator='B')
result['B'] = result['B'].map(m)
result
A B
0 a df1, df2
1 b df1
2 c df2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2254 次 |
| 最近记录: |