1 回答

TA貢獻1818條經驗 獲得超11個贊
我相信你需要map有dictionary只在過濾行:
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
另一個解決方案numpy.where:
mask = df['Married'].isnull()
df.loc[mask, 'Married'] = np.where(df.loc[mask, 'Gender'] == 'Male', 'Yes','No')
print (df)
Gender Married
0 Male Yes
1 Male Yes
2 Female No
3 Female No
4 Male Yes
5 Female No
fillna映射的另一個解決方案Series:
df['Married'] = df['Married'].fillna(df['Gender'].map({'Male':'Yes', 'Female':'No'}))
添加回答
舉報