0

我有一个pandas.Series时间戳数据 - 基本上是一系列事件:

0      2012-09-05 19:28:52
1      2012-09-05 19:28:52
2      2012-09-05 19:44:37
3      2012-09-05 19:44:37
4      2012-09-05 20:04:53
5      2012-09-05 20:04:53
6      2012-09-05 20:12:59
7      2012-09-05 20:13:15
8      2012-09-05 20:13:15
9      2012-09-05 20:13:15

我想创建一个pandas.TimeSeries超过特定的pandas.date_range(例如 15 分钟间隔;pandas.date_range(start, end, freq='15T')),它保存每个时期的事件计数。如何实现?

谢谢,彼得

4

1 回答 1

2

如果您将事件的时间戳用作系列的索引而不是数据,那么 resample 可以做到这一点。在下面的示例中,系列的索引是时间戳,数据是 event_id,基本上是您的系列的索引。

In [47]: s
Out[47]:
                      event_id
timestamp
2012-09-05 19:28:52          0
2012-09-05 19:28:52          1
2012-09-05 19:44:37          2
2012-09-05 19:44:37          3
2012-09-05 20:04:53          4
2012-09-05 20:04:53          5
2012-09-05 20:12:59          6
2012-09-05 20:13:15          7
2012-09-05 20:13:15          8
2012-09-05 20:13:15          9

resample(这个方法也可以在 DataFrame 上使用)将给出一个新的系列,在这种情况下为 15 分钟周期,桶的结束时间(周期)用于引用它(您可以使用标签arg 控制它)。

In [48]: s.resample('15Min', how=len)
Out[48]:
                      event_id
timestamp
2012-09-05 19:30:00          2
2012-09-05 19:45:00          2
2012-09-05 20:00:00          0
2012-09-05 20:15:00          6
于 2012-09-06T11:16:56.250 回答