首页 > 解决方案 > pandas concat 添加为带有 nans 的列?

问题描述

我有两个数据框,每个都有相同的列数:

print(df1.shape)
(54, 35238)

print(df2.shape)
(64, 35238)

并且两者都没有任何索引集

print(df1.index.name)
None

print(df2.index.name)
None

但是,每当我尝试垂直连接它们时(以便拥有第三个形状为 (118, 35238) 的数据框),它会生成一个带有 NaN 的新 df:


df3 = pandas.concat([df1, df2], ignore_index=True)
print(df3)

df3 打印结果

结果 df 具有正确的行数,但它决定将它们连接为新列。使用设置为 1 的“轴”标志会导致相同数量的(不适当的)列(例如 (63, 70476) 的形状)。

有想法该怎么解决这个吗?

标签: pythonpandas

解决方案


它们的列数相同,但列名不同吗?上的文档concat向我建议您需要相同的列名才能让它们以您想要的方式堆叠。

如果这是问题所在,您可以通过在连接之前更改一个数据框的列名以匹配另一个来解决它:

df2.columns = df1.columns

推荐阅读