【发布时间】:2021-04-01 10:09:12
【问题描述】:
我正在尝试创建一个函数来查找 Pandas 中的滚动导数(一阶和二阶)。
我觉得df.diff()挺方便的。
我想找到滚动窗口值 = 40 的导数。
对于一阶导数,
noise = np.random.normal(size=int(1e4))
noise=pd.DataFrame(noise)
first_derivative=noise.diff(periods=40)
如果我将它用于二阶导数是否正确?
second_derivative=noise.diff(periods=40).diff()
我很困惑,但如果我再次将periods=40 放在第二个.diff() 中,那么它将是 40*40 滚动窗口(对于二阶导数)。
谢谢!
【问题讨论】:
-
你的预期输出是什么
-
我相信您将微分(微分运算)与元素的差异混淆了。 Pandas diff() 方法计算元素的离散差异,您可以查看文档:pandas.pydata.org/docs/reference/api/pandas.DataFrame.diff.html。
-
diff没有给你导数,它只是与上一行的区别。periods只是在计算差异之前控制数据移动了多少,所以它并不是你想的那样的窗口大小
标签: python pandas derivative