我正在学习python,但我无法将结果提交给kaggle泰坦尼克号比赛。在下面的surv_pred中包含我幸存的结果数组 当T包含我的数据
show_table(T,5)
# this results in :
样本数据输入:5
PassengerId 5
年龄0.35000000000000003
SibSp 0.0
帕奇0.0
票价0.0008050000000000002
RelationsOnBoard 0.0
DatingRank 0.3
甲板0.0
女0
港口A 0
港口B 1
harbourC 0
ClassUp 0
ClassMid 0
ClassLow 1
HasCabin 0
AgeUnknown 0
Family_Size 0.0
票价每人0.008050000000000002
小屋3类1
Cabin2ndClass 0
Cabin1stClass 0
CabinLuxeryClass 0
IdealFamSize 0
surv_pred = clf.predict(T)
print(surv_pred)
#this results in a binary array [1 0 1 1 0 1 .... etc
# from here i have python trouble:
ids = T.loc['PassengerId']
submissions = pd.DataFrame('PassengerId' = ids ,'survived' = surv_pred)
submissions.to_csv("submit_v3.csv",index=False)
我尝试了代码的各种变体,但不知何故我无法获得T ea T ['passengerId']的第一列。使上述代码正常工作,将结果保存到csv文件中。熊猫以及保存和选择方面的问题。 ids=T['passenderId']
也不起作用。
上面的代码有什么问题?
我遇到了类似KeyError的错误:“标签[PassengerId]不在[索引]中”
造成以下错误:ids = T.loc ['PassengerId']
我不明白,因为PassengerId很明显在那儿
我什至试图通过在代码上方的所有内容中确保这一点。
T.rename(columns={ T.columns[0]: 'PassengerId' },inplace=True)
答案 0 :(得分:0)
代码:
submissions = pd.DataFrame('PassengerId' = ids ,'survived' = surv_pred)
产生此问题
您应该这样做:
submissions = pd.DataFrame({'PassengerId' : ids ,'survived' : surv_pred})
答案 1 :(得分:0)
您的想法是列中的所有数据
ids = T.loc [:,'PassengerId']。values
参考 “交换列值的正确方法是使用原始值:”
https://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-integer