值创建提交csv时出错

值创建提交csv时出错,csv,pandas,kaggle,sklearn-pandas,Csv,Pandas,Kaggle,Sklearn Pandas,我正在学习数据科学和阅读别人的剧本。有一个泰坦尼克算法(kaggle)有这样一个代码来应用逻辑回归,然后按照代码中的建议导出到一个.csv文件。但是,它总是在我运行代码后生成错误消息。找到原始脚本,正在读取到代码中的.csv数据如下所示: 从输入[24]到输入[28]用于设置逻辑回归。在输入[27]之前,代码仍然运行,没有错误。运行输入[28]时: acc_log = predict_model(X_data, Y_data, logreg, X_test_kaggle, 'submis

我正在学习数据科学和阅读别人的剧本。有一个泰坦尼克算法(kaggle)有这样一个代码来应用逻辑回归,然后按照代码中的建议导出到一个.csv文件。但是,它总是在我运行代码后生成错误消息。找到原始脚本,正在读取到代码中的.csv数据如下所示:

从输入[24]到输入[28]用于设置逻辑回归。在输入[27]之前,代码仍然运行,没有错误。运行输入[28]时:

    acc_log = predict_model(X_data, Y_data, logreg, X_test_kaggle, 'submission_Logistic.csv')
我收到一条错误消息:

    ValueError: could not convert string to float: 'Q'
我试图添加“try/except”以绕过错误消息,以便代码可以继续

    try:
        acc_log = predict_model(X_data, Y_data, logreg, X_test_kaggle, 'submission_Logistic.csv')
    except ValueError:
        pass

这段代码有点太复杂了,我无法调试,以查看哪一步出错,以及在文件中的哪个位置有字符串代替了所需的浮点输入。因此,我想在此寻求帮助,以便更好地理解这一点,并寻求适当的解决办法。谢谢。

看起来您没有在提供的笔记本链接中运行单元格16,在该链接中,
将值转换为整数(包括字符串值
Q
,这会引发您看到的错误):

单元格16

# fill the missing values of Embarked feature with the most common occurance
freq_port = train_df.Embarked.dropna().mode()[0]
for dataset in combine:
    dataset['Embarked'] = dataset['Embarked'].fillna(freq_port)
train_df[['Embarked', 'Survived']].groupby(['Embarked'], as_index=False).mean().sort_values(by='Survived', ascending=False)

for dataset in combine:
    dataset['Embarked'] = dataset['Embarked'].map( {'S': 0, 'C': 1, 'Q': 2} ).astype(int)

train_df.head()
我只是按顺序运行了所有单元格,
LogisticRegression
部分对我来说运行良好。试着关闭你的笔记本,然后按显示顺序重新运行所有单元格

一般数据科学提示:
当您已经训练了一个模型,但是您的
predict()
函数抛出了一个错误时,查看您输入的测试数据并尝试找出错误所在是很有帮助的。

在这种情况下,在
X_test_kaggle
中搜索字符串
Q
可能会发现问题出在
已装载的
字段中,这可能是将问题追溯到其来源的第一个面包屑

请发布一段数据集和predict_model()函数的片段,如果没有它们,几乎无法判断。但很明显,您正在将一个字符串传递到一个需要浮点的函数中。您好@pshep123谢谢您的输入。我已经编辑了问题并添加了参考资料。我不确定我应该复制和粘贴代码和数据集的哪一部分,所以我在这里列出了引用。谢谢@andrew_reece!我检查了代码,输入的内容缺少此部分的一行。我试着用手打字,这样就可以在不知不觉中打滑了。很好的收获,也感谢您与我分享您的经验:)