将两个具有相同长度的Pandas数据帧连接起来会扩展结果DataFram的长度

2024-04-20 14:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,我正试图合并在一起。df_output_norm是我尝试获取的数据帧。X_test_minmax有81732行和6列,y_test有81732行和1列。这应该是一个简单的连接,但是当我连接它时,得到的大小是(147158,7)

df_output_norm = pd.DataFrame()
df_output_norm = pd.concat([pd.DataFrame(X_test_minmax), pd.DataFrame(y_test)], axis=1)

print(df_output_norm.shape)
print(df_output_norm['label'].shape)
print(X_test_minmax.shape)
print(y_test.shape)

输出
(147158,7)
(147158,)
(81732,6)
(81732年)

列数是正确的,只是最后一列中的行数是错误的。我查看了数据,只扩展了最后一列“label”,即y_列测试。来自X_test_minmax的前6列具有正确的行长度。为什么会这样?在


Tags: 数据testnormdataframedfoutputlabelpd
3条回答

也许索引阻止了你正在寻找的结果。试试看

f_output_norm = pd.concat([pd.DataFrame(X_test_minmax), pd.DataFrame(y_test)],
                          axis=1, 
                          ignore_index=True)

忽略连接轴上的索引。在

这是个很老的问题,但我在这里找到了解决同样问题的方法。我发现这是因为行索引不匹配,因为函数将尝试对它们进行合并(很可能是您通过采样从较大的df中分块)。在

试试看

X检验_最小最大重置索引(就位=正确,下降=正确)
是的_test.reset_索引(就位=正确,下降=正确)
数据框输出标准=帕金森病([pd数据帧(X_测试_minmax),pd数据帧(y检验),轴=1)

如果ignore_index=True不起作用,这可能是由于列名重复造成的:第一个dataframe中的一个列名与第二个dataframe的列名相同。更改列名可能会有所帮助。在

相关问题 更多 >