【问题标题】:Combining dataframes with same column but different length将具有相同列但长度不同的数据框组合起来
【发布时间】:2021-03-20 09:37:47
【问题描述】:

我想合并 df1 和 df2,它们都有不同的长度。键列上的交集需要使得输出表具有 df2 中每个对应键的值,因为键列中的值是重复的。

df1

key value
1 5
1 5
2 9
3 11
4 14
4 14

df2

key value
1 a
2 b
3 c
4 d

输出

key value value
1 5 a
1 5 a
2 9 b
3 11 c
4 14 d
4 14 d

我在努力 输出 = pd.merge(df1, df2, left_on = 'key', right_on = 'key') 但它会创建额外的行。

提前感谢您的帮助。

【问题讨论】:

  • 我相信输出没问题。您注意到哪些额外的行?由于df1 有两次键14,那么在合并后,它们在最终结果中也会出现两次。可能,如果有帮助,您可以尝试pd.merge(df1,df2,on='KEY').drop_duplicates() ...

标签: python pandas dataframe merge


【解决方案1】:

试试:

pd.merge(df1,df2,on='KEY', how='left').rename(columns={'VALUE_x':'VALUE','VALUE_y':'VALUE'})

打印:

    KEY VALUE VALUE
0   1   5     a
1   1   5     a
2   2   9     b
3   3   11    c
4   4   14    d 
5   4   14    d

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2014-08-17
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多