首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何计算某一列的平均值,但只包含某些行?

如何计算某一列的平均值,但只包含某些行?
EN

Stack Overflow用户
提问于 2019-04-07 14:29:52
回答 1查看 46关注 0票数 1

我正在使用automobile.csv,它可以在UCI网站上找到。我想替换归一化损失属性中的一些NaN。我认为更好的方法是根据符号计算平均值,因为符号会影响归一化损失的值。

因此,如果NaN的符号值为3,我只需要符号值为3的其他归一化损失的平均值。我该如何实现这一点?

示例表:

symb    norm    other attrs
1        100  8017  2
1        90  5019  2
-1       20   8017  1
-1       20    8870  1
1        NaN    8305  3
0        10   8305  3
3        200  8221  3

因此,对于NaN,我只想要具有相同符号的其他行的均值

如果我使用

automobile['normalizedlosses'].fillna(automobile['normalizedlosses'].mean(axis=0), inplace=True)

这将用我不想要的相同值替换所有NaN

EN

Stack Overflow用户

回答已采纳

发布于 2019-04-07 14:49:56

您可以使用带有meanGroupBy.transform来返回与原始Series大小相同的DataFrame,因此可以通过此Series使用Series.fillna

s = automobile.groupby('symb')['norm'].transform('mean')
automobile['norm'] = automobile['norm'].fillna(s)

print (automobile)
   symb   norm  other  attrs
0     1  100.0   8017      2
1     1   90.0   5019      2
2    -1   20.0   8017      1
3    -1   20.0   8870      1
4     1   95.0   8305      3
5     0   10.0   8305      3
6     3  200.0   8221      3
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55556243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档