2014-02-07 72 views
2

我有一個熊貓數據框df,它有一列由datetime64構成,例如,熊貓,帶有datetime64列的數據框,按小時查詢

<class 'pandas.core.frame.DataFrame'> 
Int64Index: 1471 entries, 0 to 2940 
Data columns (total 2 columns): 
date 1471 non-null values 
id  1471 non-null values 
dtypes: datetime64[ns](1), int64(1) 

我想子採樣df使用作爲標準的一天中的小時(獨立地在其他信息中date)。例如,僞代碼

df_sub = df[ (HOUR(df.date) > 8) & (HOUR(df.date) < 20) ] 

對於某些功能HOUR

我想這個問題可以通過從datetime64datetime的初步轉換來解決。這可以更有效地處理嗎?

回答

3

找到了一個簡單的解決方案。

df['hour'] = df.date.apply(lambda x : x.hour) 

df_sub = df[(df.hour > 8) & (df.hour) <20] 

編輯:

有專門推出來處理這個問題的性質dt。查詢變爲:

df_sub = df[ (df.date.dt.hour > 8) 
       & (df.date.dt.hour < 20) ]