Pandas Concat увеличивает количество рядов - PullRequest
0 голосов
/ 16 мая 2018

Я объединяю два фрейма данных, поэтому хочу, чтобы один фрейм данных располагался на другом. Но сначала я сделал какое-то преобразование в исходный фрейм данных:

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 и categoryorial_data

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Проблема в том, что иногда, когда вы выполняете несколько операций над одним объектом фрейма данных, индекс сохраняется в памяти .Поэтому использование df.reset_index () решит вашу проблему.

0 голосов
/ 16 мая 2018

Я решил проблему с помощью hstack

train = pd.DataFrame(np.hstack([real_data,categorial_data]))
...