我想将两个数字列合并为一个数据集,我想另存为.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)
... whih返回标题中的错误:
数组长度195与索引长度418不匹配
第三行
““幸存”:pred”
我尝试使用pd.concat()。reset_index()代替DataFrame,但是产生TypeError“无法连接类型为“”的对象”。
也许我现在看的时间太长了,但是看不到问题所在。 谢谢,如果可以的话,请提前。
答案 0 :(得分:0)
实际上,我很快就解决了这个问题,所以我会回答我的问题。
解决方案是:
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)
干杯。