【问题标题】:A strange errro,ValueError: Shape of passed values is (7, 4), indices imply (7, 2)一个奇怪的错误,ValueError:传递值的形状是 (7, 4),索引意味着 (7, 2)
【发布时间】:2017-03-26 09:40:49
【问题描述】:

下面的代码抛出异常,ValueError: Shape of passed values is (7, 4), indices imply (7, 2)。

df4 = pd.DataFrame({'E': ['B2', 'B3', 'B6', 'B7'],
                     'F': ['D2', 'D3', 'D6', 'D7'],
                     'G': ['F2', 'F3', 'F6', 'F7']},
                    index=[2, 2, 6, 7])
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
                        'B': ['B0', 'B1', 'B2'],
                        'C': ['C0', 'C1', 'C2'],
                        'D': ['D0', 'D1', 'D2']},
                        index=[0, 1, 2])
result00 = pd.concat([df1, df4], axis=1,join='inner')

我对这个错误感到困惑。如何合并两个数据框?

我想要的合并结果如下

【问题讨论】:

  • @MaxU 我期待的合并结果如上所示。

标签: python pandas


【解决方案1】:

您可以按以下形式使用 pd.concat:

result00 = pd.concat([df1, df4], axis=1, join_axes = [df4.index], join = 'inner').dropna()

之前的代码不起作用,因为 df2 中有重复的索引。希望这会有所帮助

【讨论】:

    【解决方案2】:

    你可以使用merge()方法:

    In [122]: pd.merge(df1, df4, left_index=True, right_index=True)
    Out[122]:
        A   B   C   D   E   F   G
    2  A2  B2  C2  D2  B2  D2  F2
    2  A2  B2  C2  D2  B3  D3  F3
    

    【讨论】:

    • ,是的,该功能起作用了。顺便问一下,我可以知道为什么 pd.concat 不起作用!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2023-03-12
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2022-07-08
    • 2020-11-09
    相关资源
    最近更新 更多