用其他两列中的另一个值替换NaN

时间:2019-06-23 09:47:17

标签: python

在一个数据帧上,我使用了groupbymean来创建下表:

代码:

df.groupby(['Pclass','Sex'])['Age'].mean()

结果:

Class  Sex       
1.0     female    36.893130
        male      41.103490
2.0     female    27.499223
        male      30.815380
3.0     female    22.185329
        male      25.962264

现在,我要使用上表的结果从fillna列(在主数据帧上的 )中获取[Age]的值。

  • 因此,如果一个人的年龄为NaN且该人处于2级且性别为男性,则应填写30.81

  • 我当时正在考虑在if (df.loc[i, 'Pclass']==x) & (df.loc[i, 'Sex']=='female')中使用类似for-loop的代码,但是找不到一种很好的方法。

1 个答案:

答案 0 :(得分:1)

尝试一下:-

df['Age'] = df.groupby(['Pclass','Sex']).Age.transform(lambda x: x.fillna(x.mean()))