在数据框中,我确实有“性别”和“分数”列
Gender:'M','F','F','M','F'
Score : np.NaN,200,400,300,np.NaN
我需要将“得分”列的“NaN”值更改为该特定性别的平均值。
尝试以下代码,但无法正常工作:
df6['Score']=df6['Score'].
fillna(df6.groupby('Gender')['Score'].transform('mean'))
df6
答案 0 :(得分:3)
您可以将transform
的结果保留为数据框,fillna
将按预期工作。
df.fillna(df.groupby('Gender')[['Score']].transform('mean'))
Gender Score
0 M 300.0
1 F 200.0
2 F 400.0
3 M 300.0
4 F 300.0