熊猫:选择两个日期(日期时间指数)

问题描述:

我有一个数据帧大熊猫与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来选择一整天的最佳方式,然后如何在特定的一天内选择特定的时间范围?

选项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')] 

您可以使用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)