我在两个数据帧上使用concat操作。但是我遇到了值错误:传递的值的形状为(14,78692),索引暗示为(14,78250) 数据框具有以下属性: [9935行x 6列]和[68316行x 8列] 如果我们同时添加两行,则会得到78250,但不确定为什么会出现此错误。
final_df = pd.concat([df, tp_df],axis=1)
我还有另外两组数据,它们具有相同的列和不同的行数,并且在该数据集上工作正常。
答案 0 :(得分:2)
如果没有样本数据,我只是一个猜测。通常,当一个或两个数据帧中都有重复索引时,pd.concat
上的axis=1
就会失败。尝试运行这些:
df.index.duplicated().any()
和
tp_df.index.duplicated().any()
如果其中一个或两个都返回True
,并且您想保留df
和tp_df
的当前索引,则需要进行以下外部联接
df.join(tp_df, how='outer')
如果您不想保留当前索引,请执行以下操作:
pd.concat([df.reset_index(drop=True), tp_df.reset_index(drop=True)],axis=1)
注意:pd.concat
与reset_index
的行和列的排列方式与外部联接不同,因此取决于您的期望输出并相应选择。