2017-02-09 109 views
1

如何計算每列滾動(窗口= 60)值的坡度,增加5?大熊貓 - 滾動坡度計算

我想計算每5分鐘的價值,我不需要每個記錄的結果。

這裏的樣本數據框和結果:

df 
Time    A ...  N 
2016-01-01 00:00 1.2 ... 4.2 
2016-01-01 00:01 1.2 ... 4.0 
2016-01-01 00:02 1.2 ... 4.5 
2016-01-01 00:03 1.5 ... 4.2 
2016-01-01 00:04 1.1 ... 4.6 
2016-01-01 00:05 1.6 ... 4.1 
2016-01-01 00:06 1.7 ... 4.3 
2016-01-01 00:07 1.8 ... 4.5 
2016-01-01 00:08 1.1 ... 4.1 
2016-01-01 00:09 1.5 ... 4.1 
2016-01-01 00:10 1.6 ... 4.1 
.... 

result 
Time    A ...  N 
2016-01-01 00:04 xxx ... xxx 
2016-01-01 00:09 xxx ... xxx 
2016-01-01 00:14 xxx ... xxx 
... 

可以df.rolling功能被應用到這個問題?

這很好,如果楠窗口,這意味着子集可以是小於60

回答

-1

你可以使用pandas Resample。需要注意的是使用這個,你需要一個指數隨時間值

df.index = pd.to_datetime(df.Time) 
print df 
result = df.resample('5Min').bfill() 
print result 
           Time A N 
Time           
2016-01-01 00:00:00 2016-01-01 00:00 1.2 4.2 
2016-01-01 00:01:00 2016-01-01 00:01 1.2 4.0 
2016-01-01 00:02:00 2016-01-01 00:02 1.2 4.5 
2016-01-01 00:03:00 2016-01-01 00:03 1.5 4.2 
2016-01-01 00:04:00 2016-01-01 00:04 1.1 4.6 
2016-01-01 00:05:00 2016-01-01 00:05 1.6 4.1 
2016-01-01 00:06:00 2016-01-01 00:06 1.7 4.3 
2016-01-01 00:07:00 2016-01-01 00:07 1.8 4.5 
2016-01-01 00:08:00 2016-01-01 00:08 1.1 4.1 
2016-01-01 00:09:00 2016-01-01 00:09 1.5 4.1 
2016-01-01 00:10:00 2016-01-01 00:10 1.6 4.1 
2016-01-01 00:15:00 2016-01-01 00:15 1.6 4.1 
           Time A N 

輸出

Time           
2016-01-01 00:00:00 2016-01-01 00:00 1.2 4.2 
2016-01-01 00:05:00 2016-01-01 00:05 1.6 4.1 
2016-01-01 00:10:00 2016-01-01 00:10 1.6 4.1 
2016-01-01 00:15:00 2016-01-01 00:15 1.6 4.1 
+0

謝謝,但我想輸出是最後五個記錄的坡度值。 時間戳記從00:00開始,因此00:04是輸出的第一行。 (1-> 00:00,2-> 00:01,3-> 00:02,4→00:03,5→00:04) – Lcy