熊猫:选择两个日期(日期时间指数)
问题描述:
我有一个数据帧大熊猫与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:00
和2015-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)