假设我有两个数据框:
DF1:
A
0 a
1 b
DF2:
A
0 a
1 c
我想要的结果是联合两帧的与额外的列表示该行属于源数据帧。如果有重复项,应删除重复项,相应的额外列应显示两个来源:
A B
0 a df1, df2
1 b df1
2 c df2
我可以得到连接数据框(df3)没有重复,如下所示:
import pandas as pd
df3=pd.concat([df1,df2],ignore_index=True).drop_duplicates().reset_index(drop=True)
我想不出/找到一种方法可以控制哪个元素去哪里。如何添加额外的列?
合并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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。