重复时间序列数据的熊猫滚动中位数

时间:2012-03-18 20:51:48

标签: python matplotlib pandas

我发现Pandas还不允许duplicate time series indexeshttps://github.com/pydata/pandas/issues/643),但很快就会添加。我想知道是否有一种很好的方法可以通过多索引标记/列将滚动窗口方法应用于具有重复次数的数据集

基本上我有一个csv的非有序事件,包括epochtime,层次标签(tag1,tag2)和时间。一小部分样本:

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

我想要做的是使用不同的ms窗口,按事件和事件+标记构建和绘制滚动方式。这似乎应该在Pandas中完成,但不确定我是否需要等到重复的时间序列索引。现在有任何关于黑客入侵的想法吗?

1 个答案:

答案 0 :(得分: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要求,那么对我和这些人有帮助,因为我们现在正积极致力于时间序列功能。