合并具有原点的两个数据帧

时间:2018-02-06 09:36:56

标签: python pandas merge merging-data

假设我有以下两个数据框df_1和df_2,并希望将它们与另一列合并,该列说明该行是否存在于df_1,df_2或两者中。有没有办法在使用merge时直接执行此操作?

df_1

Data Frame 1

df_2

enter image description here

我想要的数据框:

enter image description here

1 个答案:

答案 0 :(得分:3)

使用merge中的参数indicatordict的预期输出添加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