作者:番茄国王2013_562_572 | 来源:互联网 | 2023-02-01 11:58
我有一个带有DatetimeIndex的Pandas DataFrame和一列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
我尝试了这里概述的方法:这里
但 df[date_from:date_to]
输出:
KeyError: Timestamp('2015-07-16 07:00:00')
所以它想要精确的指数.此外,我没有date
专栏.只有带日期的索引.
通过提供日期来选择一整天的最佳方式是什么2015-07-16
,然后我如何在特定日期内选择特定的时间范围?
1> Andrew L..:
选项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> JrtPec..:
您可以使用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)