2017-06-14 149 views
2

我有一個數據幀大熊貓與DatetimeIndex和一列MSE Loss 索引的格式如下之間數據幀行:熊貓:選擇兩個日期(日期時間指數)

DatetimeIndex(['2015-07-16 07:14:41', '2015-07-16 07:14:48', 
      '2015-07-16 07:14:54', '2015-07-16 07:15:01', 
      '2015-07-16 07:15:07', '2015-07-16 07:15:14',...] 

它包括幾個天。

我想選擇特定日子的所有行(所有時間),而不必明確知道實際的時間間隔。 例如:間2015-07-16 07:00:002015-07-16 23:00:00

我想在這裏介紹的方法:here

df[date_from:date_to]

輸出:

KeyError: Timestamp('2015-07-16 07:00:00') 

所以要精確指標。此外,我沒有date列。只有帶日期的索引。

什麼是通過提供日期2015-07-16來選擇一整天的最佳方式,然後如何在特定的一天內選擇特定的時間範圍?

回答

2

選項1

樣品DF:

df 
         a 
2015-07-16 07:14:41 12 
2015-07-16 07:14:48 34 
2015-07-16 07:14:54 65 
2015-07-16 07:15:01 34 
2015-07-16 07:15:07 23 
2015-07-16 07:15:14 1 

它看起來像你想這個沒有.loc(會離不開它的工作):

df.loc['2015-07-16 07:00:00':'2015-07-16 23:00:00'] 
         a 
2015-07-16 07:14:41 12 
2015-07-16 07:14:48 34 
2015-07-16 07:14:54 65 
2015-07-16 07:15:01 34 
2015-07-16 07:15:07 23 
2015-07-16 07:15:14 1 

選項2

您可以在指數使用布爾索引:

df[(df.index.get_level_values(0) >= '2015-07-16 07:00:00') & (df.index.get_level_values(0) <= '2015-07-16 23:00:00')] 
2

您可以使用truncate

begin = pd.Timestamp('2015-07-16 07:00:00') 
end = pd.Timestamp('2015-07-16 23:00:00') 

df.truncate(before=begin, after=end)