我需要为csv文件中日期在descending order
中的一组数据计算EMA
。
当我应用pandas.DataFrame.ewm
时,我会得到等于该值的最新(按日期(的EMA。这是因为ewm
在DataFrame
中从上到下开始观察。
到目前为止,我找不到使ewm
反向的选项。所以我想,我将不得不反转我的所有数据集。
也许有人知道如何让ewm
从底层价值出发?还是建议始终使用按时间排序的datetimeindex
?从顶部的最旧值到底部的最新值?
来自熊猫的文档:
与观察结果相对应的时间。必须是单调递增的,datetime64[ns]数据类型。
我想,datetimeindex必须是按时间顺序排列的。。
您可以简单地临时重置索引。
df.index.name = 'date' # IF YOU HAVEN'T SET A NAME YET
df = df.reset_index(drop=False)
# PERFORM EWM OPERATIONS
然后将其设置回原来的DateTimeIndex
df = df.set_index('date')
我在这里提出了一个类似的问题:在pandas数据帧中以相反的日期顺序滚动窗口?
其中的结论选项是:
- 双反向
- 排序
双反向是优选的,因为排序是";昂贵的";(尽管我自己并没有将两者进行比较(。