3

不規則なサンプリングの時系列があり、そのような関数を使用したいと思いますpandas.stats.moments.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
4

1 に答える 1

2

ここにあなたが望むと思うことをする方法があります

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

datelike-index を作成します (ここでは秒を意味すると仮定します。日付に追加するには ns に変換する必要があります)

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

結果を 20 ミリ秒に合わせ、最小値なしで 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
于 2013-10-02T16:48:56.260 に答える