Python 在dataframe中,只有大于0的列中的值才能计算平均值吗?

Python 在dataframe中,只有大于0的列中的值才能计算平均值吗?,python,pandas,dataframe,Python,Pandas,Dataframe,在dataframe中,只有大于0的列中的值才能计算平均值吗? 我有一个结构如下的数据集 Week |Mon |Tues |Weds |Thurs |Fri |Sat |Sun |average :-------:-------:-------:----------:-------:-------:--------:-------:----------- 1 |5915 |2997 |8499 |1248 |308

在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
使用平均值将得到所述列中的所有值,该列给出总计/7。
df['average']=df['Mon'、'Tues'、'Weds'、'Thurs'、'Fri'、'Sat'、'Sun']]。平均值(轴=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)

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

df[df[['Mon', 'Tues','Weds','Thurs','Fri','Sat','Sun']]>0].mean(axis=1)