我创建了以下数据框:
这将产生以下输出。
然而,这里我得到以下输出:
当我手动检查八月份时,我得到了:
如何获得每月的正确平均值?
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
我正在尝试通过以下方法按创建日期月份获取平均值:
monthly_availability_mean = monthly_availability.mean()
然而,这里我得到以下输出:
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
当我手动检查八月份时,我得到了:
1.0 + 0 + 0 + 0 + 0 / 5 = 0.2
如何获得每月的正确平均值?
df = df.sort_index()
。 - jezrael`availability = pd.DataFrame(propertyAvailableData).set_index("createdat")` `availability = availability.sort_index()` `monthly_availability = availability.fillna(value=0).groupby(pd.TimeGrouper(freq='M'))`
但结果仍然相同。 - Bunkersort_index
来更好地检查数据,因为似乎还有其他带有八月索引的行。或者问题也可能出在你的简短示例上? - jezrael5
行,因此默认情况下没有排序。 - jezrael