【问题标题】:Merging 2 dataframes合并 2 个数据框
【发布时间】:2016-05-04 07:54:15
【问题描述】:

我正在尝试合并以下 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) 必须等于 "right" 索引中的层数

df 总共有 11458060 行,df1 有 2528243 行

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

【问题讨论】:

  • 如果您在合并中指明 left_on = 某些内容,您还必须指明 right_on。这仅在两个数据框中的列名称不同时才有用。否则只需使用 on = something。

标签: python pandas dataframe


【解决方案1】:

我认为您需要在 xyz 列上使用 merge

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

Docs.

参数onmerge:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-23
    • 2018-12-07
    • 1970-01-01
    • 2020-09-04
    • 2017-12-07
    • 2015-10-14
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多