用特定变量的平均值替换null

2024-04-19 06:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为nf的数据帧,列名为type和minutes。对于特定类型的空值,我只想用该特定类型的平均值替换

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个值等于5,对于C也是如此

我试过使用均值函数,但我不知道如何对一个特定的变量使用均值函数。你知道吗

谢谢你的帮助


Tags: 数据函数id类型typenan均值平均值
1条回答
网友
1楼 · 发布于 2024-04-19 06:16:40

可以将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))

相关问题 更多 >