合并2个数据帧

时间:2016-05-04 07:54:15

标签: python pandas dataframe

我正在尝试合并以下2个数据帧。

df.head():

        x     y     z   w
0  0.0056    11   824  51
1  0.0056   138   546  16
2  0.0056   328  1264  40
3  0.0056  1212   553  91
4  0.0056  1839   388  48

df1.head():

           x      y     z
0  5539.0567  12243    27
1  5873.2923  14474  1540
2  3975.9776  11353   699
3  1508.5975   8250   628
4    66.7913  11812   538

使用以下命令:

df1 = df1.merge(df, how='left',left_on=(['x','y','z']),right_index=True)

并出现以下错误:

  

ValueError:len(left_on)必须等于"右边"

索引中的等级数

总计df有11458060行,df1有2528243行

我真的不知道这意味着什么。谁能告诉我我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

我认为您需要xyz列上的merge

print df1.merge(df, how='left', on=['x','y','z'])

Docs

<{3}}中的参数

  

on :要加入的列(名称)。必须在左侧和右侧DataFrame对象中找到。如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键