我有一个名为nf的数据框,其列名称分别为类型和分钟。对于特定类型的空值,我只想替换为该特定类型的均值
ID Type Minute
1 A 2
2 A 5
3 B 7
4 B NAN
5 B 3
6 C 4
7 C 6
8 C NAN
9 A 8
10 C 2
对于上述数据框,我想在几分钟内将nan替换为该特定类型的平均值。例如,对于B我想用5代替,因为其他两个值的总和为10和2,所以对C等于5。
我尝试使用均值函数,但是我不了解如何针对特定变量进行操作。
感谢帮助
答案 0 :(得分:1)
您可以将GroupBy
和'mean'
与transform
一起使用:
df['Minute'] = df['Minute'].fillna(df.groupby('Type')['Minute'].transform('mean'))
transform
为您执行索引编制,因此您不必将操作分为两个步骤:
s = df.groupby('Type')['Minute'].mean()
df['Minute'] = df['Minute'].fillna(df['Type'].map(s))