2014-10-07 122 views
6

假設我有一個包含多個時間戳和值的數據幀。我想每2.5秒測量Δ values/Δt。熊貓是否提供任何時間差異的工具?Pandas中的時間差異

       time_stamp values 
19492 2014-10-06 17:59:40.016000-04:00 1832128         
167106 2014-10-06 17:59:41.771000-04:00 2671048         
202511 2014-10-06 17:59:43.001000-04:00 2019434         
161457 2014-10-06 17:59:44.792000-04:00 1294051         
203944 2014-10-06 17:59:48.741000-04:00 867856 

回答

6

它當然會。首先,您需要將您的索引轉換爲pandas date_range格式,然後使用可用於該類的索引的系列/數據框的自定義偏移功能。有用的文檔here。閱讀更多關於偏移別名的here

此代碼應重新取樣的數據,以2.5秒的間隔

#df is your dataframe 
index = pd.date_range(df['time_stamp']) 
values = pd.Series(df.values, index=index) 

#Read above link about the different Offset Aliases, S=Seconds 
resampled_values = values.resample('2.5S') 

resampled_values.diff() #compute the difference between each point! 

應該這樣做。

+0

謝謝@tyleha。我希望在上面的數據框中使用這個精確的解決方案。這是我的嘗試:http://stackoverflow.com/questions/26247301/pandas-resampling-values-within-time-window-until-now我需要抽樣是因果關係,但事實並非如此。 – 2014-10-08 00:28:37

+0

'df.diff().diff()'等價於找到二階導數(近似)? – LondonRob 2016-03-24 15:06:11

+0

當然。但你最好知道你的Δt以保持你的單位有用。 2.5^2 s^2將是重擊。 – tyleha 2016-03-24 21:04:48