2013-10-02 45 views
3

我有一個不規則採樣的時間序列,並且希望使用像pandas.stats.moments.rolling_sum這樣的函數。rolling_sum爲熊貓的不規則時間序列?

不幸的是,它看起來像函數只返回「x」樣本,而不是「x」秒。

不知道如何解決這個...對熊貓來說很新。

我的數據看起來像

time  value 
0.000 0.0000 
0.013 0.0134 
0.023 0.0256 
0.035 0.0423 
0.049 0.0756 
0.069 0.0998 
+0

是這些timedelta時間?,類似浮動的時間還是實際的時間(類似datelike)? – Jeff

+0

時間增量,從零開始。我使用熊貓分析數據進行物理測試。 – Chris

+0

好的...下面的解決方案,因爲我們不提供此ATM的timedelta支持。你也可以用groupby做到這一點,但我認爲會更慢 – Jeff

回答

2

這裏是一個方式做什麼,我想你想

In [34]: df = read_csv(StringIO(data),sep='\s+') 

創建datelike指數(假設你的意思秒在這裏,需要轉換爲納秒添加到日期)

In [35]: df['time'] = pd.to_datetime([Timestamp('20130101').value + v*1e9 for v in df['time'] ]) 

In [36]: df.set_index('time',inplace=True) 

In [37]: df 
Out[37]: 
          value 
time        
2013-01-01 00:00:00   0.0000 
2013-01-01 00:00:00.012999 0.0134 
2013-01-01 00:00:00.023000 0.0256 
2013-01-01 00:00:00.035000 0.0423 
2013-01-01 00:00:00.048999 0.0756 
2013-01-01 00:00:00.068999 0.0998 

使結果符合20ms,滾動20個週期,沒有最小值

In [38]: pd.rolling_sum(df,20,0,freq='20ms') 
Out[38]: 
           value 
time        
2013-01-01 00:00:00   0.00670 
2013-01-01 00:00:00.020000 0.04065 
2013-01-01 00:00:00.040000 0.11625 
2013-01-01 00:00:00.060000 0.21605 
+3

爲什麼這被接受?這不是不規則時間的滾動總和。 – cronos