对于方法.rolling()的参数window,我使用了值360D和360 (我认为它们是等效的)。然而,他们产生了不同的图形。您能解释一下这两个值之间的区别吗?
rolling_stats = data.Ozone.rolling(window='360D').agg(['mean', 'std'])
stats = data.join(rolling_stats)
stats.plot(subplots=True)
plt.show()
rolling_stats = data.Ozone.rolling(window=360).agg(['mean', 'std'])
stats = data.join(rolling_stats)
stats.plot(subplots=True)
plt.show()

发布于 2021-10-25 15:57:54
不同之处在于,当您使用字符串'360D‘时,它通过考虑"Calendar Days“来计算滚动,而当您使用360 (int)时,它计算工作日的滚动。
另一个不同之处是,当使用字符串('360D')时,熊猫从‘日历年’开始计算滚动,而当你使用整数( 360 )时,熊猫从最近360个工作日计算。这就是为什么在您的第二个图中有一个间隙,因为在前359天,rolling.agg()返回NaN值。然而,在第一个图中没有空隙。如果进一步查看细节,您会发现对于第一个方法,data.Ozone.rolling.agg()等于data.Ozone.iloc
https://stackoverflow.com/questions/60201911
复制相似问题