首页 > 解决方案 > 如何使用 pandas 系列实现 FIFO?

问题描述

我想使用pandas Series作为FIFO。索引应为DateTimeIndex类型。值应为浮点数。

例如,当执行一次 Jupyter 单元时

timestamp = datetime.datetime.now().isoformat()
time_series = pd.Series(data=[1.0], index=pd.DatetimeIndex([timestamp]))

和以下两次

timestamp = datetime.datetime.now().isoformat()
time_series = time_series.append(pd.Series(data=[1.0], index=pd.DatetimeIndex([timestamp])))
time_series

具有相应时间戳的值作为最后一行(推送)附加到 pandas 系列

2020-01-27 12:41:31.341218    1.0
2020-01-27 12:41:33.047248    1.0
2020-01-27 12:48:30.547635    1.0
dtype: float64

删除第一行(pop)可以用

time_series.iloc[1:]

这使

2020-01-27 12:41:33.047248    1.0
2020-01-27 12:48:30.547635    1.0
dtype: float64

这些pushpop操作按应有的方式发挥作用。但可能有一种方法可以使执行更快。如何更有效地实施pushpop操作(性能)?

标签: pythonpandastime-series

解决方案


推荐阅读