首页 > 解决方案 > 为什么我的数据框在连接时会创建新行?

问题描述

我正在尝试合并两个数据框。一个有形状,1725 rows x 3 columns另一个有1725 rows x 8 columns

我将它们合并res = pd.concat([dataSet, onehotDataFrame], axis=1)并得到一个 shape 的数据框 1810 rows x 11 columns

这些列看起来不错,但为什么结果中有 85 行额外的行?

重要的是要注意原始数据有形状(1810, 7),我使用

extractedCols = remove_columns(originalDF, remove_from_all)
noDuplacates = extractedCols.drop_duplicates() 

为了得到一个(1725, 4)数据框,我在合并之前删除了另一列。

标签: pythonpandasdataframeconcatenation

解决方案


问题是不同的索引值,所以你需要相同的DataFrame.reset_indexwith drop=True

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

另一个想法是在之前设置一个索引concat

dataSet.index = onehotDataFrame.index
df = pd.concat([dataSet, onehotDataFrame], axis=1)

推荐阅读