我有一个这样的时间序列:
idx = pd.DatetimeIndex(['01:55:00', '02:25:00', '03:20:00', '02:35:00'])
ts = Series([1, 2, 3, 4], index=idx)
ts
2019-04-20 01:55:00 1
2019-04-20 02:25:00 2
2019-04-20 03:20:00 3
2019-04-20 02:35:00 4
dtype: int64
当我将resample
函数与参数'2T'一起使用时,groups
字典如下:
r = ts.resample('2T')
r.groups
{Timestamp('2019-04-20 01:54:00', freq='2T'): 1,
Timestamp('2019-04-20 01:56:00', freq='2T'): 1,
...
}
第一个时间戳是'01:54:00',当我更改参数时,第一个时间戳也会更改。
r = ts.resample('5T')
r.groups
{Timestamp('2019-04-20 01:55:00', freq='5T'): 1,
Timestamp('2019-04-20 02:00:00', freq='5T'): 1,
...
}
r = ts.resample('15T')
r.groups
{Timestamp('2019-04-20 01:45:00', freq='15T'): 1,
Timestamp('2019-04-20 02:00:00', freq='15T'): 1,
...
}
我不知道这是什么规则。我已经搜索了熊猫的文档并用谷歌搜索,但是没有找到答案。
答案 0 :(得分:0)
我发现Pandas对第一个和最后一个时间戳做了一些复杂的处理。在这种情况下,简化的代码如下:
from pandas.tseries.frequencies import to_offset
first = pd.Timestamp('2019-04-20 01:55:00')
offset = to_offset('35T')
start_day_nanos = first.normalize().value
foffset = (first.value - start_day_nanos) % offset.nanos
fresult = first.value - foffset
pd.Timestamp(fresult)
Timestamp('2019-04-20 01:45:00')