问题描述
我有这样的数据:
maxValue
我想找出每个新月份与上个月使用量平均值的百分比差异。例如,
- 202001 年将是 NA,因为没有上个月
- 202002 年上个月的平均值 将只有 202001,因此页面浏览量的百分比差异 与 202001 年相比,202002 年为 50%,用户为 20%
- 与 202003 年类似,前几个月的平均值为 202001 年和 202002 年的平均值相加,因此综合浏览量平均值为 125(100+150 除以 2),并且用户 是 11,因此 202003 年的百分比差异将为 -20% 浏览量和 +18% 的用户等。
我如何使用 python 找到它?任何帮助,将不胜感激。谢谢。
解决方法
尝试 cumsum()/range
的累积平均值:
cols = ['PageViews','Users']
cum_mean = df[cols].cumsum().div(np.arange(len(df))+1,axis=0)
df[cols].div(cum_mean.shift()).sub(1)
输出:
PageViews Users
0 NaN NaN
1 0.500000 0.200000
2 -0.200000 0.181818
3 0.028571 0.285714
4 0.106383 -0.200000