Pandas Concat增加了行数

时间:2018-05-16 10:14:27

标签: python python-3.x pandas concat

我连接两个数据帧,所以我想将一个数据帧定位到另一个数据帧。 但首先我对初始数据框进行了一些转换:

scaler = MinMaxScaler() 
real_data = pd.DataFrame(scaler.fit_transform(df[real_columns]), columns = real_columns)

然后连接:

categorial_data  = pd.get_dummies(df[categor_columns], prefix_sep= '__')
train = pd.concat([real_data, categorial_data], axis=1, ignore_index=True)

我不知道为什么,但行数增加了:

print(df.shape, real_data.shape, categorial_data.shape, train.shape)
(1700645, 23) (1700645, 16) (1700645, 130) (1703915, 146)

发生了什么以及如何解决问题?

正如您可以看到列的列数等于列的总和real_data和categorial_data

2 个答案:

答案 0 :(得分:1)

我使用hstack

解决了这个问题
train = pd.DataFrame(np.hstack([real_data,categorial_data]))

答案 1 :(得分:1)

问题在于,有时当您对单个数据框对象执行多项操作时,索引会保留在内存中。因此,使用 df.reset_index()将解决您的问题。