У меня есть 3 кадра данных, train
и test
содержат мой набор поездов и тестов соответственно. svd_col
содержит функции для набора поездов и тестового набора в указанном порядке.
Размеры выстраиваются в ряд:
print(svd_col.shape)
print(train.shape)
print(test.shape)
#output:
(237774, 32) # 32 SVD components
(225609, 45)
(12165, 2) # 225609 + 12165 = 237774 as expected
Теперь я хочу объединить значения SVD со столбцами id
и target
моего набора поездов и со столбцом id
моего набора тестов.
Работает, как и ожидалось, для состава поезда:
X_train = train[['id', 'target']]
print(X_train.shape)
print(svd_col[0:len(X_train)].shape)
X_train = pd.concat([X_train, svd_col[0:len(X_train)]], axis=1)
print('X_train', X_train.shape)
# output:
(225609, 2)
(225609, 32)
X_train (225609, 34) # perfect!
Теперь проблема! Я хочу сделать то же самое для тестового набора:
X_test = test[['id']]
print(X_test.shape)
print(svd_col[len(X_train):].shape)
X_test = pd.concat([X_test, svd_col[len(X_train):]], axis=1)
print('X_test', X_test.shape)
# output:
(12165, 1)
(12165, 32)
X_test (24330, 33) # why 24330 and not 12165?!
Полагаю, проблема в том, что индекс svd_col
не начинается с 0, поэтому я попытался сбросить его:
X_test = X_test
X_test = pd.concat([X_test, svd_col[len(X_train):].reset_index()], axis=1)
print('X_test', X_test.shape)
# output:
(12165, 1)
(12165, 32)
X_test (12165, 34) # why 34 and not 33?
Но теперь у меня есть дополнительный столбец «указатель», который я не могу удалить: - /