2017-03-13 15 views
1

私は、時系列データでそれぞれ10分のウィンドウのローリング平均を計算しようとしています。私は次の形式のデータフレームを持っています:パンダ転動平均時系列

   Date  Time Reading 
0  2016/08/01 0: 0: 0 7.297 
1  2016/08/01 0: 0: 1 7.047 
2  2016/08/01 0: 0: 2 6.826 
3  2016/08/01 0: 0: 3 6.641 
4  2016/08/01 0: 0: 4 6.694 
5  2016/08/01 0: 0: 5 7.055 
6  2016/08/01 0: 0: 6 7.676 
7  2016/08/01 0: 0: 7 8.840 
8  2016/08/01 0: 0: 8 9.150 
9  2016/08/01 0: 0:10 8.790 
10  2016/08/01 0: 0:11 8.840 
11  2016/08/01 0: 0:12 8.650 
12  2016/08/01 0: 0:13 8.280 
13  2016/08/01 0: 0:14 7.834 
14  2016/08/01 0: 0:15 7.897 
15  2016/08/01 0: 0:16 7.828 
16  2016/08/01 0: 0:17 7.964 
17  2016/08/01 0: 0:18 8.270 
18  2016/08/01 0: 0:19 8.310 
19  2016/08/01 0: 0:20 8.200 
20  2016/08/01 0: 0:21 8.380 
21  2016/08/01 0: 0:22 8.460 
22  2016/08/01 0: 0:23 8.400 
23  2016/08/01 0: 0:24 8.060 
24  2016/08/01 0: 0:25 8.040 
25  2016/08/01 0: 0:26 8.690 
26  2016/08/01 0: 0:27 9.090 
27  2016/08/01 0: 0:29 8.750 
28  2016/08/01 0: 0:30 8.670 

ご覧のとおり、時間分解能は1秒です。ただし、サンプル26と27の間では、解像度が2秒であることがわかります。私はローリング方法を使用していましたが、ウィンドウ= 600で、私のデータ全体に1秒の解像度が実際にはなかったことがわかりました。私はパンダに新しいですので、私は行って、ドキュメントを見て、最新のパンダバージョンでは、1のように、ローリング平均ためのウィンドウとして実際の時間を使用することが分かっ:

df.resample('10min').mean() 

これはしませんでした私のタイムスタンプはパンダのタイムスタンプ形式ではないと思うので、私のために働いてください。パンダが自分のタイムスタンプを認識できるようにデータを操作するにはどうしたらいいですか?または、私の問題を解決する方法について他に提案がありますか?

ありがとうございました!

答えて

2

私はパンダが正しくあなたのタイムスタンプを解析します(時間分秒の通常の表現はHH:MM:SSある)いますが、 `DF [「タイムスタンプ」] = pd.to_datetime(DFを使用

df['timestamp'] = pd.to_datetime(df.pop('Date') + ' ' + df.pop('Time').str.replace(' ','')) 
# check that this variable contains the correct timestamp 

df.set_index('timestamp', inplace = True) 
+1

を試すことができますかわかりません。 pd.to_datetime()が正しく解析するようにするには、pop( 'Date')+ '' + df.pop( 'Time')str.replace( ''、 '')) '... – MaxU

+0

。それはうまくいった。しかし、私は質問がある、なぜstr.replace( ''、 '')??? – entropy4money

+0

私の友人の魔法。パイソンマジック –