有没有一种方法来计算平均值,只在dataframe中大于0的列中的值?我有一个结构如下的数据集。
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)
有没有办法从以下几个方面获得结果:
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发布于 2021-01-27 09:13:59
只需添加另一层布尔索引,使其仅为正数:
df[df[['Mon', 'Tues','Weds','Thurs','Fri','Sat','Sun']]>0].mean(axis=1)https://stackoverflow.com/questions/65911512
复制相似问题