【问题标题】:Add column from other dataframe on a specific column while keeping original indexes在特定列上添加来自其他数据框的列,同时保留原始索引
【发布时间】:2019-11-18 19:20:23
【问题描述】:

Pandas 新手并尝试根据两个数据框共有的列添加从 df2df1 的列。我想保留df1 中的索引。请注意,df2 有很多重复的行,包括重复的 ItemId。

DataFrame 1

     ItemId
0    1
1    4
2    7
3    8
DataFrame 2

0    column1    ItemId    column_to_merge
1    21984      1         apple
2    89767      1         apple
3    84595      2         pear
4    90876      4         tree
5    59876      5         cookie
6    50758      5         cookie
7    85738      7         monster
8    34980      8         kick



预期结果

DataFrame 1

     ItemId    column_to_merge
0    1         apple
1    4         tree
2    7         monster
3    8         kick

我想保留 DataFrame 1 的索引,并将 DataFrame 2 的列添加到 DataFrame 1。

非常感谢任何帮助。

在按照 Karthik Katragadda 的建议进行合并之前,我在 df2 中删除了重复项,以便可以在不包含重复项的情况下完成合并。

【问题讨论】:

    标签: pandas dataframe join merge concatenation


    【解决方案1】:

    一个简单的左合并将为您完成这项工作。

    试试这个:

    dataframe_1 = dataframe_1.merge(dataframe_2[['ItemId','column_to_merge']], on = 'ItemId', how = 'left')
    

    【讨论】:

    • 谢谢!我忘了提到我的df2 有重复的行,这就是为什么我的预期结果包含大量重复的行,同时也更改了索引。在进行合并之前,我通过在 df2 中删除重复项来修复它。
    猜你喜欢
    • 2021-06-17
    • 2018-07-23
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2021-10-11
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多