假设我有以下两个数据框df_1和df_2,并希望将它们与另一列合并,该列说明该行是否存在于df_1,df_2或两者中。有没有办法在使用merge时直接执行此操作?
df_1
df_2
我想要的数据框:
答案 0 :(得分:3)
使用merge
中的参数indicator
和dict
的预期输出添加map
:
df = pd.merge(df1, df2, how='outer', indicator='origin')
print (df)
Index x y origin
0 20 5 8 left_only
1 35 4 7 left_only
2 55 3 2 both
3 60 12 1 both
4 22 4 3 right_only
5 30 12 6 right_only
d = {'left_only':'1', 'right_only':'2', 'both':'1 & 2'}
df['origin'] = df['origin'].map(d)
print (df)
Index x y origin
0 20 5 8 1
1 35 4 7 1
2 55 3 2 1 & 2
3 60 12 1 1 & 2
4 22 4 3 2
5 30 12 6 2