4

我看到 Pandas 还不允许重复的时间序列索引https://github.com/pydata/pandas/issues/643),但很快就会添加。我想知道是否有一种好方法可以通过多索引标签/列将滚动窗口均值应用于具有重复时间的数据集

基本上,我有一个由纪元时间、分层标签(tag1、tag2)和所用时间组成的无序事件的 csv。一个小样本:

 epochTimeMS,event,tag,timeTakenMS
 1331782842801,event1,tag1,16
 1331782841535,event1,tag2,1278
 1331782842801,event1,tag1,17
 1331782842381,event2,tag1,436

我想要做的是通过事件和事件+标签构建和绘制具有不同 ms 窗口的滚动方式。这似乎应该在 Pandas 中完成,但不确定我是否需要先等到重复的时间序列索引。现在有什么想法可以解决这个问题吗?

4

1 回答 1

4

现在没有什么可以阻止你:

In [17]: idf = df.set_index(['tag', 'epochTimeMS'], verify_integrity=False).sort_index()

In [18]: idf
Out[18]: 
                     event  timeTakenMS
tag  epochTimeMS                       
tag1 1331782842381  event2          436
     1331782842801  event1           16
     1331782842801  event1           17
tag2 1331782841535  event1         1278

In [20]: idf.ix['tag1']
Out[20]: 
                event  timeTakenMS
epochTimeMS                       
1331782842381  event2          436
1331782842801  event1           16
1331782842801  event1           17

通过时间戳访问特定值将导致异常(正如您所提到的,这将得到改进),但您当然可以使用数据。现在,如果您想要一个固定长度(在时间空间中)的窗口,那么它还没有得到很好的支持,但我在这里创建了一个问题:

https://github.com/pydata/pandas/issues/936

如果您可以在邮件列表中说出您的应用程序中的 API 要求,这将对我和其他人有所帮助,因为我们现在正在积极研究时间序列功能。

于 2012-03-18T21:43:52.637 回答