Python 如何使用datetime索引从数据框中的特定日期选择行

Python 如何使用datetime索引从数据框中的特定日期选择行,python,pandas,Python,Pandas,我有一个以日期时间为索引的数据帧。类似于下面的一个 >>> data.index Index(['2019-05-15 23:45:00', '2019-05-15 23:46:00', '2019-05-15 23:47:00', '2019-05-15 23:48:00', '2019-05-15 23:49:00', '2019-05-15 23:50:00', '2019-05-15 23:52:00', '2019-05-15 23:53:

我有一个以日期时间为索引的数据帧。类似于下面的一个

>>> data.index
Index(['2019-05-15 23:45:00', '2019-05-15 23:46:00', '2019-05-15 23:47:00',
       '2019-05-15 23:48:00', '2019-05-15 23:49:00', '2019-05-15 23:50:00',
       '2019-05-15 23:52:00', '2019-05-15 23:53:00', '2019-05-15 23:54:00',
       '2019-05-15 23:55:00',
       ...
       '2019-05-19 05:36:00', '2019-05-19 05:37:00', '2019-05-19 05:38:00',
       '2019-05-19 05:39:00', '2019-05-19 05:40:00', '2019-05-19 05:41:00',
       '2019-05-19 05:42:00', '2019-05-19 05:43:00', '2019-05-19 05:44:00',
       '2019-05-19 05:45:14'],
      dtype='object', name='date', length=989)
我需要选择与日期对应的所有行
2019-05-16
。我试过这两种方法

1)
数据['2019-05-16']
给出了
键错误:“2019-05-16'


2)
data.loc['2019-05-16']
给出了
KeyError:'标签[2019-05-16]不在[索引]中'
首先将值转换为DatetimeIndex,因为现在它是datetimes的字符串代表:

data.index = pd.to_datetime(data.index)

如果存在至少一个带日期的索引值,则您的解决方案正在运行:

print (data['2019-05-16'])
                     a
2019-05-16 23:46:00  1
如果不存在,则存在替代方案:

print (data[data.index.normalize() == '2019-05-18'])
Empty DataFrame
Columns: [a]
Index: []

print (data[data.index.floor('d') == '2019-05-18'])
Empty DataFrame
Columns: [a]
Index: []

print (data[data.index.date == '2019-05-18'])
Empty DataFrame
Columns: [a]
Index: []
print (data[data.index.normalize() == '2019-05-18'])
Empty DataFrame
Columns: [a]
Index: []

print (data[data.index.floor('d') == '2019-05-18'])
Empty DataFrame
Columns: [a]
Index: []

print (data[data.index.date == '2019-05-18'])
Empty DataFrame
Columns: [a]
Index: []