基于其他列熊猫填充缺失值

我想根据熊猫中的其他列填充缺失值。这是我的表:


Gender     Married

Male       Yes

Male       Yes

Female     No

Female     No

Male       NaN

Female     NaN

如果性别为男性,我将填充已婚字段的缺失值 -> 已婚为是,否则已婚为否:


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)

但它失败了,我尝试了很多方法,但没有得到预期的结果。我希望收到你们所有人。


肥皂起泡泡
浏览 181回答 1
1回答

慕尼黑8549860

我相信你需要map有dictionary只在过滤行:mask = df['Married'].isnull()df.loc[mask, 'Married'] = df.loc[mask, 'Gender'].map({'Male':'Yes', 'Female':'No'})print (df)   Gender Married0    Male     Yes1    Male     Yes2  Female      No3  Female      No4    Male     Yes5  Female      No另一个解决方案numpy.where:mask = df['Married'].isnull()df.loc[mask, 'Married'] = np.where(df.loc[mask, 'Gender']  == 'Male', 'Yes','No')print (df)   Gender Married0    Male     Yes1    Male     Yes2  Female      No3  Female      No4    Male     Yes5  Female      Nofillna映射的另一个解决方案Series:df['Married'] = df['Married'].fillna(df['Gender'].map({'Male':'Yes', 'Female':'No'}))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python