用特定变量替换空值

时间:2018-08-01 14:26:23

标签: python pandas replace mean pandas-groupby

我有一个名为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。

我尝试使用均值函数,但是我不了解如何针对特定变量进行操作。

感谢帮助

1 个答案:

答案 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))