首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法来计算平均值,只在dataframe中大于0的列中的值?

有没有一种方法来计算平均值,只在dataframe中大于0的列中的值?
EN

Stack Overflow用户
提问于 2021-01-27 09:05:57
回答 1查看 26关注 0票数 0

有没有一种方法来计算平均值,只在dataframe中大于0的列中的值?我有一个结构如下的数据集。

代码语言:javascript
复制
Week    |Mon    |Tues   |Weds      |Thurs  |Fri    |Sat     |Sun    |average
:-------:-------:-------:----------:-------:-------:--------:-------:-----------
1       |5915   |2997   |8499      |1248   |3089   |1343    |0      |3298.71
2       |0      |0      |3588      |5693   |1297   |288     |2453   |1902.71

使用mean将获得所述列中的所有值,这将得出Total/7。df['average'] = df[['Mon', 'Tues','Weds','Thurs','Fri','Sat','Sun']].mean(axis=1)

有没有办法从以下几个方面获得结果:

代码语言:javascript
复制
Week    |Mon    |Tues   |Weds      |Thurs  |Fri    |Sat     |Sun    |average (desired output)
:-------:-------:-------:----------:-------:-------:--------:-------:--------------------------------
1       |5915   |2997   |8499      |1248   |3089   |1343    |0      |(5915+2997+8499+1248+3089+1343)/6
2       |0      |0      |3588      |5693   |1297   |288     |2453   |(3588+5693+1297+288+2453)/5
EN

回答 1

Stack Overflow用户

发布于 2021-01-27 09:13:59

只需添加另一层布尔索引,使其仅为正数:

代码语言:javascript
复制
df[df[['Mon', 'Tues','Weds','Thurs','Fri','Sat','Sun']]>0].mean(axis=1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65911512

复制
相关文章

相似问题

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