是否有一种方法可以计算平均值,仅在数据框中大于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
只需添加另一层布尔索引,使其仅为正数:
df[df[['Mon', 'Tues','Weds','Thurs','Fri','Sat','Sun']]>0].mean(axis=1)