熊猫时间戳比较无法正常工作

问题描述

我有一个通过时间戳索引的数据帧:

                                  A
t                                  
2020-07-27 11:00:28.575000+01:00  0
2020-07-27 11:00:43.775000+01:00  1
2020-07-27 11:00:44.175000+01:00  2
2020-07-27 11:00:44.475000+01:00  3
2020-07-27 11:00:45.575000+01:00  4

我想找到所有大于变量的行:

start_time
Out[31]: datetime.datetime(2020,7,27,11,tzinfo=<DstTzInfo 'Europe/London' LMT-1 day,23:59:00 STD>)

但是它会返回提示

如果我采用第一个索引:

df.index[0]
Out[32]: Timestamp('2020-07-27 11:00:28.575000+0100',tz='Europe/London')

并将其与start_time进行比较:

df.index[0] > start_time
Out[34]: False

,如果我将start_time转换为timestamp

pd.Timestamp(start_time)
Out[36]: Timestamp('2020-07-27 11:00:00-0001',tz='Europe/London')

df.index[0] > pd.Timestamp(start_time)
Out[37]: False

为什么不能正常工作?

解决方法

我刚刚检查了一下,似乎对我有用:

start_time = datetime.datetime(2020,7,27,11,)
df.index[0] > pd.Timestamp(start_time,tz="Europe/London")
>>> True