Python 根据其他列填充缺少的值

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

我想根据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[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'}))