将两个数据框与原点合并
Merging two data frames with origins
假设我有以下两个数据框 df_1 和 df_2 并且想将它们与一个附加列合并,该列说明该行是否存在于 df_1,df_2 或两者兼而有之。有什么方法可以在使用合并时直接执行此操作吗?
df_1
df_2
我想要的数据框:
通过dict
在merge
and for expected output add map
中使用参数indicator
:
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
假设我有以下两个数据框 df_1 和 df_2 并且想将它们与一个附加列合并,该列说明该行是否存在于 df_1,df_2 或两者兼而有之。有什么方法可以在使用合并时直接执行此操作吗?
df_1
df_2
我想要的数据框:
通过dict
在merge
and for expected output add map
中使用参数indicator
:
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