Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python数据帧连接两个数据帧_Python_Join_Pandas_Merge - Fatal编程技术网

python数据帧连接两个数据帧

python数据帧连接两个数据帧,python,join,pandas,merge,Python,Join,Pandas,Merge,我正在尝试连接到数据帧。它们看起来像这样 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

我正在尝试连接到数据帧。它们看起来像这样

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
我一直试图在on='outer'设置下使用pd.merge和.join函数,但没有成功

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

df.merge(df2,how='outer',left_on=['ID','COUNTRY','YEAR'],right_on=['ID',"COUNTRY","YEAR"])
(根据您的输入表,列名应使用大写)

您试过了吗

df1.join(df2)

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

除了你的ID栏,你的码头应该工作。你的合并给了你什么?我有一个类似的问题,结果是熊猫没有正确键入索引字段。在read_csv中,我将索引字段的dtype设置为str type,但忘记设置engine='c',因此它不起作用。Ram立即耗尽,机器锁定,直到数小时后抛出内存错误。修复后的运行时间约为2分钟,包括写入60Mb文件。熊猫至少应该发出警告,但不要。