Python 3.x 如何根据条件替换数据帧/系列中的行值?
我正在为泰坦尼克号沉船数据集准备一个模型。我正试图将男性和女性成员的失踪年龄分别填为31岁和28岁 我试着用这个代码来填充男性乘客的失踪年龄Python 3.x 如何根据条件替换数据帧/系列中的行值?,python-3.x,pandas,Python 3.x,Pandas,我正在为泰坦尼克号沉船数据集准备一个模型。我正试图将男性和女性成员的失踪年龄分别填为31岁和28岁 我试着用这个代码来填充男性乘客的失踪年龄 if data[data.Sex=='male'].Age.isna(): data['Age'] = 31 并得到以下错误: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all
if data[data.Sex=='male'].Age.isna():
data['Age'] = 31
并得到以下错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
有多个错误:
data[data.Sex='male'].Age.isna()
返回一系列布尔值,如:(True,False,False,True)您希望if语句做什么?如果意思是说,如果下面是真的,就做点什么。这里不是真的或假的,而是一系列的data[data.Sex='male'].Age.isna()
与data['Age']=31
即使if
语句为True
,数据['Age']=31
也会将所有年龄设置为31,而不仅仅是缺少的年龄。我不认为那是你想做的data.loc[( (data.Sex=='male') & (data.Age.isna()) )] = 31
为了使if语句返回True而不是错误,请使用:
any(data[data.Sex='male'].Age.isna())
或all(data[data.Sex='male'].Age.isna())
取决于您想要实现的目标。欢迎来到这里,您可能需要先学习Python/Pandas教程。因为这并不是熊猫的工作原理。
data.loc[( (data.Sex=='male') & (data.Age.isna()) )] = 31