Python 根据其他列填充缺少的值
我想根据pandas中的其他列填充缺少的值。 这是我的桌子:Python 根据其他列填充缺少的值,python,pandas,data-science,Python,Pandas,Data Science,我想根据pandas中的其他列填充缺少的值。 这是我的桌子: Gender Married Male Yes Male Yes Female No Female No Male NaN Female NaN I如果性别为男性->已婚为是,否则已婚为否,则填写已婚字段的缺失值: df['Married'].fillna(df[df['Married'].isnull()].apply(lambda x: 'Yes' if (df
Gender Married
Male Yes
Male Yes
Female No
Female No
Male NaN
Female NaN
I如果性别为男性->已婚为是,否则已婚为否,则填写已婚字段的缺失值:
df['Married'].fillna(df[df['Married'].isnull()].apply(lambda x: 'Yes' if (df[df['Married'].isnull()]['Gender'] is 'Male') else 'No', axis=1), inplace=True)
但是失败了,我尝试了很多方法,但没有得到我期望的结果。
我希望能收到你们所有人的来信。我相信您需要的是字典
仅在筛选行中:
mask = df['Married'].isnull()
df.loc[mask, 'Married'] = df.loc[mask, 'Gender'].map({'Male':'Yes', 'Female':'No'})
print (df)
Gender Married
0 Male Yes
1 Male Yes
2 Female No
3 Female No
4 Male Yes
5 Female No
另一个解决方案包括:
另一个具有映射的系列的解决方案
:
df['Married'] = df['Married'].fillna(df['Gender'].map({'Male':'Yes', 'Female':'No'}))
Hi@jezrael,在有很多值的表中,性别男性在已婚模式中也没有,但模式(性别=男性)为是,因此我想填写NaN,因为男性为是,我不想修改数据已经有值。我的解释对你来说很清楚?@HuyTruong-当然,所有3个新解决方案都能做到。非常感谢你,这对我很有效,我节省了很多时间。@HuyTruong-不客气!如果我的答案有帮助,别忘了——点击答案旁边的复选标记,将其从灰色变为填充。谢谢,我做完了。再一次,谢谢你hi@jpp谢谢你的回答,在我创建我的帖子之前,我看不到这篇帖子
df['Married'] = df['Married'].fillna(df['Gender'].map({'Male':'Yes', 'Female':'No'}))