2014-06-21 34 views
2

我有一個系列的值由時間戳索引。這些時間戳是不規則間隔的,我想計算一些類似於過去N秒的滾動平均值(比如說),其中N是常數。不幸的是,在計算滾動數量之前定期進行重新採樣不是一個選項 - 必須在整個數據集上計算滾動數量。熊貓應用可變窗口長度的應用

有沒有一種很好的方式在熊貓做到這一點?

+0

的可能重複的[熊貓:滾動通過時間間隔均值](HTTP:/ /stackoverflow.com/questions/15771472/pandas-rolling-mean-by-time-interval) –

回答

1

您希望將索引重置爲整數索引,並在時間戳列上執行滾動操作。

# generate some data 
data = pd.DataFrame(data={'vals':range(5), 'seed_ts': [np.datetime64('2017-04-13T09:00:00') for x in range(5)]}) 
data['random_offset'] = [np.timedelta64(randint(0, 5), 's') for x in range(5)] 
data['cum_time'] = data['random_offset'].cumsum() 
data['ts'] = data['seed_ts'] + data['cum_time'] 
data.index = data['ts'] 
data = data[['vals']] 

重置索引:

data = data.reset_index() 

計算滾動意味着過去5秒時:

data['rolling_mean'] = data.rolling('5s', on='ts')['vals'].mean()