下面是我的 Pandas 数据框的示例,其中日期作为索引:
A
2019-01-09 1.007042
2019-01-10 1.007465
2019-01-11 1.007054
2019-01-12 1.007154
2019-01-13 1.007854
2019-01-14 1.008560
我想确定 A 列每 2 行的二阶导数。在 Pandas 中使用 .diff()
函数两次进行此确定是否合适?
df['A2'] = df['A'].diff(2).diff(2)
最佳答案
这是一个九个月前的问题,但仍然出现在谷歌搜索该 Material 的顶部,因此保证了一个可接受的答案。如果此免责声明是不必要的,我希望有人帮我删除它。
二阶导数可以计算为中心导数、前向导数或后向导数,但根据您的示例,我认为您正在寻找后向导数。如果您愿意,可以在每一行上计算它,但是,使用 diff()
可能真的很难做到。函数 shift()
运行良好,方法如下:
df['A2'] = df['A'] - 2*df['A'].shift(1) + df['A'].shift(2)
该技术依赖于finite differences
关于python - 使用 Pandas .diff() 计算时间序列的二阶导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54505175/