在其中一个数据帧中,我将空值与其他值的平均值基于分组依据填充
假设我的数据框是这样的
Month Dayname Class Val1 Val2
Sep Mon A 1 2
Sep Mon B 3 4
Sep Tue A 7 5
Oct Mon F 5 2
Oct Fri K 2 8
Oct Fri F 7 3
Sep Mon A NaN NaN
Sep Mon B NaN NaN
Oct Fri F NaN NaN
当我使用此代码时,它会正确更新NaN,
df = df.groupby(['Month','Dayname']).transform(lambda x: x.fillna(x.mean()))
但是它会按 Month&Dayname
列删除分组最终结果将是这样
Class Val1 Val2
A 1 2
B 3 4
A 7 5
F 5 2
K 2 8
F 7 3
A 2 3
B 2 3
F 4.5 5.5
如何通过保持按列分组来实现这一行