如何将熊猫时间序列限制在最后几秒的n



我有一个熊猫时间序列

time_series = pd.Series(data=[3,4,5], index=pd.DatetimeIndex(['2020-07-07 00:06:00.283', '2020-07-07 00:06:02.542', '2020-07-07 00:06:02.829']), name='I'))

以ISO格式的CCD_ 1时间戳作为索引。如何获得与最后n秒(例如1秒(相对应的时间序列的子集?

使用datetime.timedelta的单个衬垫将是

import pandas as pd
import datetime
time_series = pd.Series(data=[3,4,5], index=pd.DatetimeIndex(['2020-07-07 00:06:00.283', '2020-07-07 00:06:02.542', '2020-07-07 00:06:02.829']), name='I')
time_series.loc[time_series.index >= max(time_series.index) - datetime.timedelta(seconds=1)]
# 2020-07-07 00:06:02.542    4
# 2020-07-07 00:06:02.829    5
# Name: I, dtype: int64

您可以获取索引的最后一个值,并从中减去自定义时间步长,然后选择具有较大值的所有索引

n_sec = 1
time_series.index = pd.to_datetime(time_series.index, format="%Y-%m-%d %H:%M:%S")
first_value = time_series.index.max() - pd.to_timedelta(n_sec, unit='s')

应该产生

> print(time_series[first_value:])
2020-07-07 00:06:02.542    4
2020-07-07 00:06:02.829    5
Name: I, dtype: int64

最新更新