本文介绍了 pandas 计算每月平均值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了以下数据框:

availability = pd.DataFrame(propertyAvailableData).set_index("createdat")

monthly_availability = availability.fillna(value=0).groupby(pd.TimeGrouper(freq='M'))

这给出了以下输出

            2015-08-18  2015-09-09  2015-09-10  2015-09-11  2015-09-12  \
createdat                                                                
2015-08-12         1.0         1.0         1.0         1.0         1.0   
2015-08-17         0.0         0.0         0.0         0.0         0.0   
2015-08-18         0.0         1.0         1.0         1.0         1.0   
2015-08-18         0.0         0.0         0.0         0.0         0.0   
2015-08-19         0.0         1.0         1.0         1.0         1.0   
2015-09-03         0.0         1.0         1.0         1.0         1.0   
2015-09-03         0.0         1.0         1.0         1.0         1.0   
2015-09-07         0.0         0.0         0.0         0.0         0.0   
2015-09-08         0.0         0.0         0.0         0.0         0.0   
2015-09-11         0.0         0.0         0.0         0.0         0.0   

我正在尝试通过以下操作获得每个月创建的平均值:

I'm trying to get the averages per created at month by doing:

monthly_availability_mean = monthly_availability.mean()

但是,在这里我得到以下输出:

However, here I get the following output:

            2015-08-18  2015-09-09  2015-09-10  2015-09-11  2015-09-12  \
createdat                                                                
2015-08-31    0.111111    0.444444    0.666667    0.777778    0.777778   
2015-09-30    0.000000    0.222222    0.222222    0.222222    0.222222   
2015-10-31    0.000000    0.000000    0.000000    0.000000    0.000000   

当我亲自检查八月时,我得到了:

And when I hand check august I get:

1.0 + 0 + 0 + 0 + 0 / 5 = 0.2


我如何获得每月正确的均值?


How do I get the correct mean per month?

推荐答案

availability.resample('M').mean()

这篇关于 pandas 计算每月平均值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-13 19:25