【问题标题】:python pandas dataframe join two dataframes [duplicate]python pandas数据框加入两个数据框[重复]
【发布时间】:2026-01-25 11:30:01
【问题描述】:

我正在尝试加入数据框。它们看起来像这样

DF1 = ID     COUNTRY     YEAR     V1     V2     V3    V4
      12     USA         2012     x      y      z      a
      13     USA         2013     x      y      z      a
      14     RUSSIA      2012     x      y      z      a

DF2 = ID     COUNTRY     YEAR     TRACT
      9      USA         2000       A
      13     USA         2013       B

期望的最终目标是:

DF3 = ID     COUNTRY     YEAR     V1     V2     V3    V4    TRACT    
      9      USA         2000                                 A
      12     USA         2012     x      y      z      a
      13     USA         2013     x      y      z      a      B
      14     RUSSIA      2012     x      y      z      a

我一直在尝试将 pd.merge 和 .join 函数与 on='outer' 设置一起使用,但没有成功

df3 = pd.merge(df1,df2,how='outer',left_on=['ID','Country','Year'],right_on=['ID',"Country","Year"])

【问题讨论】:

  • 除了您的 ID 列,您拥有的码头应该可以工作。你的合并给了你什么?

标签: python join pandas merge


【解决方案1】:

试试这个:

df.merge(df2,how='outer',left_on=['ID','COUNTRY','YEAR'],right_on=['ID',"COUNTRY","YEAR"])

(根据您的输入表,列名应大写)

【讨论】:

    【解决方案2】:

    你试过了吗

    df1.join(df2)
    

    您可以稍后添加参数,但它应该可以工作。

    【讨论】:

    • 我有一个类似的问题,原来是熊猫没有正确输入索引字段。在read_csv中,我将索引字段的dtype设置为str类型,但是忘记设置engine='c',所以不起作用。 Ram 立即最大化并且机器锁定,直到几个小时后抛出内存错误。修复后的运行时间约为 2 分钟,包括写入 60Mb 文件。 Pandas 至少应该发出警告,但不会。