我想使用同一类别缺失值所在的列的均值来填充缺失值
data = {'Class': ['Superlight', 'Aero', 'Aero', 'Superlight', 'Superlight', 'Superlight', 'Aero', 'Aero'],
'Weight': [5.6, 8.6, np.nan, 5.9, 5.65, np.nan, 8.1, 8.4]}
Class Weight
0 Superlight 5.60
1 Aero 8.60
2 Aero NaN
3 Superlight 5.90
4 Superlight 5.65
5 Superlight NaN
6 Aero 8.10
7 Aero 8.40
我知道我可以做:
df.Weight.fillna(df.Weight.mean())
但是这将用整列的平均值填补缺失值。
以下代码将使用 AERO 类别的平均值替换 null 值(比第一种方法更好,但仍需要针对每个类别/分类单独处理)
df.Weight.fillna(df[df.Class == 'Aero'].Weight.mean())
是否可能将其抽象化,使它自动获取当前行的类别并找到该类别中的值的平均值,并替换它,而不是硬编码类别值?希望这样说有意义。