python-熊猫:选择两个日期之间的DataFrame行(日期时间索引)

我有一个带有DatetimeIndex和一栏MSE损失的Pandas DataFrame
索引的格式如下:

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')

因此,它需要精确的索引.此外,我没有日期列.只有带有日期的索引.

仅提供日期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')]
上一篇:如何在C中对向量排序和排序(不使用C 11)


下一篇:python-将列表插入到单元格中-为什么loc在这里实际起作用?