【发布时间】:2018-04-24 22:28:35
【问题描述】:
我有一个 DataFrame,其中每一行代表一次医生就诊,每一列包含来自一次诊断测试的数据。数据不完整,缺失值用 NaN 填充。
这是一个简化的例子:
AGE Height SEX Weight
0 79 40 Male 90
1 79 21 Male 20
2 79 NaN Male 50
3 79 89 Male NaN
4 79 90 Male 57
5 81 87 Female NaN
6 81 NaN Female 89
7 81 54 Female 79
8 81 21 Female NaN
9 81 23 Female 23
我想用相同性别和年龄的患者的总体平均值替换每个 NaN。我已经能够使用以下内容创建一个包含每个 AGE 和 SEX 组合的方法的 DataFrame:
age_sex_means = df.groupby(['SEX', 'AGE'])['Height','Weight'].mean()
这会产生以下 DataFrame:
Height Weight
SEX AGE
Female 81 37.0 38.2
Male 79 48.0 43.4
但是我找不到用第二个 DataFrame 中包含的方法替换第一个 DataFrame 中的 NaN 的方法。 Using Pandas to fill NaN entries based on values in a different column, using a dictionary as a guide 似乎都解决了与我类似的情况,但只有一个索引显然不适用于我的确切情况。
【问题讨论】: