【问题标题】:Merging two data frames with origins合并两个具有源的数据框
【发布时间】:2018-07-16 07:46:03
【问题描述】:

假设我有以下两个数据框 df_1 和 df_2 并希望将它们与一个附加列合并,该列说明该行是否存在于 df_1、df_2 或两者中。使用合并时有什么方法可以直接做到这一点?

df_1

df_2

我想要的数据框:

【问题讨论】:

  • 如果我的回答对您有帮助,请不要忘记accept 它 - 单击答案旁边的复选标记 () 将其从灰色切换为已填充。谢谢。跨度>

标签: python pandas merge merging-data


【解决方案1】:

merge 中使用参数indicator 并为预期的输出添加map by dict

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

【讨论】:

    猜你喜欢
    • 2016-10-19
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 2021-12-04
    • 2015-03-21
    • 2019-01-21
    相关资源
    最近更新 更多