Python 如何使用标签列表索引DateTimeIndex

Python 如何使用标签列表索引DateTimeIndex,python,pandas,dataframe,datetimeindex,Python,Pandas,Dataframe,Datetimeindex,我无法使用pandas.DatetimeIndex索引pandas数据帧 当我尝试使用.loc访问器(相反,通过.iloc使用索引列表进行索引时,会出现问题 以下是重现问题的代码: from\uuuuu future\uuuuu导入打印功能 导入系统 如果系统版本信息[0]

我无法使用pandas.DatetimeIndex索引pandas数据帧

当我尝试使用
.loc
访问器(相反,通过
.iloc
使用索引列表进行索引时,会出现问题

以下是重现问题的代码:

from\uuuuu future\uuuuu导入打印功能
导入系统
如果系统版本信息[0]<3:
从StringIO导入StringIO
其他:
从io导入StringIO
作为pd进口熊猫
将numpy作为np导入
数据=字符串(“”)
时间戳、值
2014-04-02 14:29:00,42.652
2014-04-02 14:34:00,41.361
2014-04-02 14:39:00,-68.408
2014-04-02 14:44:00,40.262
2014-04-02 14:59:00,-89.836
2014-04-02 15:04:00,42.579
""")
异常情况=['2014-04-02 14:39:00','2014-04-02 14:59:00']
df=pd.read\u csv(数据,解析日期=['timestamp'],索引\u col='timestamp')
#工作
打印(“1”)
打印(df.loc[0]]
打印(df.loc[异常[1]])
#工作
打印(“\n2”)
异常\索引=[np.argwhere(df.index==a).item()表示异常中的a]
打印(异常和索引)#打印[2,4]
打印(df.iloc[u索引,:])
#不工作->抛出键错误
打印(“\n3”)
打印(df.loc[异常,:])
我在我的机器上使用Python
3.7.2
和pandas
0.23.4
,但是在Repl.it上使用Python
3.7.4
和pandas
0.25.1
(试试这个)和Python
2.7.16
和pandas
0.24.2
(试试这个),在撰写本文时,哪些是Repl.it上Python 2和3环境的默认版本

你能找出我代码中的错误或告诉我遗漏了什么吗

[编辑:回答]

解决方案是转换datetime对象中的字符串,如注释中所建议的(感谢user@anky_91):

异常=[pd.to_datetime(a)表示异常中的a]
打印(df.loc[normales,:])#现在可以了

这是因为列表
异常
有字符串条目,但
df.index
是一个datetimeindex,请尝试
df.loc[[pd.to_datetime(i)for i in excelatories]]
查看works@anky_91是的,这就是问题所在。我不能说我没有考虑过这个问题,但是由于使用单个字符串进行索引是可行的,我希望它能够使用列表,所以我没有尝试。。我真丢脸。谢谢你们的快速回答。
pd.to\u datetime(异常)
也可以。