【发布时间】:2017-04-26 04:46:46
【问题描述】:
我正在尝试创建一个数据框,其中一个字段是使用函数计算的。为此,我使用以下代码:
import pandas as pd
def didSurvive(sex):
return int(sex == "female")
titanic_df = pd.read_csv("test.csv")
submission = pd.DataFrame({
"PassengerId": titanic_df["PassengerId"],
"Survived": didSurvive(titanic_df["Sex"])
})
submission.to_csv('titanic-predictions.csv', index=False)
当我运行此代码时,我收到以下错误:
D:\Documents\kaggle\titanic>python predictor.py
文件“predictor.py”,第 3 行
def didSurvive() {
^
SyntaxError: 无效语法
D:\Documents\kaggle\titanic>python predictor.py
D:\Documents\kaggle\titanic>python predictor.py
D:\Documents\kaggle\titanic>python predictor.py
回溯(最近一次通话最后一次):
文件“predictor.py”,第 10 行,在
“幸存者”:didSurvive(titanic_df["Sex"])
文件“predictor.py”,第 4 行,在 didSurvive
返回 int(sex == "女性")
文件“C:\Python34\lib\site-packages\pandas\core\series.py”,第 92 行, 在包装中
"{0}".format(str(converter)))
TypeError:无法将系列转换为
D:\Documents\kaggle\titanic>
我认为正在发生的事情是我试图在一系列布尔值而不是单个布尔值上运行 int()。我该如何解决这个问题?
【问题讨论】: