获取值错误:传递的值的形状为(14,78692),索引表示为(14,78250)

时间:2019-07-07 21:13:27

标签: python pandas dataframe

我在两个数据帧上使用concat操作。但是我遇到了值错误:传递的值的形状为(14,78692),索引暗示为(14,78250) 数据框具有以下属性: [9935行x 6列]和[68316行x 8列] 如果我们同时添加两行,则会得到78250,但不确定为什么会出现此错误。

    final_df = pd.concat([df, tp_df],axis=1)

我还有另外两组数据,它们具有相同的列和不同的行数,并且在该数据集上工作正常。

1 个答案:

答案 0 :(得分:2)

如果没有样本数据,我只是一个猜测。通常,当一个或两个数据帧中都有重复索引时,pd.concat上的axis=1就会失败。尝试运行这些:

df.index.duplicated().any()

tp_df.index.duplicated().any()

如果其中一个或两个都返回True,并且您想保留dftp_df的当前索引,则需要进行以下外部联接

df.join(tp_df, how='outer')

如果您不想保留当前索引,请执行以下操作:

pd.concat([df.reset_index(drop=True), tp_df.reset_index(drop=True)],axis=1)

注意pd.concatreset_index的行和列的排列方式与外部联接不同,因此取决于您的期望输出并相应选择。