我有两个DataFrames,我试图连接在一起。 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_test列。来自X_test_minmax的前6列具有正确的行长度。为什么会这样?
答案 0 :(得分:0)
如果ignore_index = True不起作用,则可能是由重复的列名引起的:第一个数据帧中的一个列名与第二个数据帧的列名相同。更改列名可能会有所帮助。
答案 1 :(得分:0)
很老的问题,但是我登陆这里寻找相同问题的解决方案。我发现这是由于行索引不匹配所致,因为该函数将尝试对它们进行连接(很可能是通过采样等方法将较大的df进行了分块)。
尝试
X_test_minmax.reset_index(inplace = True,drop = True)
y_test.reset_index(inplace = True,drop = True)
df_output_norm = pd.concat([pd.DataFrame(X_test_minmax),pd.DataFrame(y_test)],axis = 1)
答案 2 :(得分:-1)
也许索引阻止了您正在寻找的结果。尝试
f_output_norm = pd.concat([pd.DataFrame(X_test_minmax), pd.DataFrame(y_test)],
axis=1,
ignore_index=True)
忽略连接轴上的索引。