Как сопоставить длину массива и длину индекса - PullRequest
0 голосов
/ 01 марта 2019

Я хочу объединить два числовых столбца в один набор данных, который я хотел бы сохранить в виде файла .csv.

На самом деле это титановый набор данных из Kaggle.

Во-первых, я 'Мы объединили набор данных поезда и теста для разработки функций следующим образом:

split = len(train)
data =  pd.concat(objs=[train, test], axis=0).reset_index(drop=True)

Затем я разделил их для обучения модели:

#Split data
train = data[:split]
test = data[split:]

#Get variables for a model
x = train.drop(["Survived", "PassengerId"], axis=1)
y = train["Survived"]

#Do train data splitting
X_train, X_test, y_train, y_test = train_test_split(x,y,test_size=0.22, random_state=101)

И теперь я хочу сгенерировать файл представления, которыйЯ пробовал как:

Id = test['PassengerId']
pred = vc.predict(X_test)

output = pd.DataFrame({
   'PassengerId' : Id, 
   'Survived': pred 
})

output.to_csv('~/Documents/Titanic/submission.csv', index=False)

... который возвращает ошибку, как в заголовке:

длина массива 195 не соответствует длине индекса 418

для третьей строки

"'Survived': pred"

Я пытался использовать pd.concat (). Reset_index () вместоDataFrame, но это привело к TypeError "не может объединить объект типа" "".

Возможно, я смотрю на него слишком долго, но не вижу проблемы.Спасибо, если кто-то еще может, заранее.

1 Ответ

0 голосов
/ 01 марта 2019

На самом деле, я решил проблему в ближайшее время, поэтому я отвечу на мой вопрос.

Решение:

Id = test['PassengerId']
pred = vc.predict(X_test)

output = pd.concat([pd.DataFrame(Id), pd.DataFrame(pred)], axis=1)

output.to_csv('~/Documents/Titanic/submission.csv', index=False, header=True)

Приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...