关于根据日期时间列过滤数据框的奇怪行为

A strange behaviour regarding filtering a dataframe based on the datatime column

我遇到以下代码的奇怪情况。如您所见,似乎没有 timestamp_day 值小于以下代码中指定值的数据:

print myDF.shape
> (447609, 20)

print myDF[myDF['timestamp_day'] < timedelta(2014, 7, 26, 2, 0)].shape
> (0, 20)

但是,当我检查 timestamp_day 的最小值(见下文)时,我发现上面的代码应该 return 一些行。

myDF['timestamp_day'].min()
> datetime.datetime(2014, 5, 21, 12, 0)

有人知道为什么会这样吗?

尝试提取一些实践值来测试您的不等式是否有意义。

datetime.datetime(2014, 5, 21, 12, 0) < timedelta(2014, 7, 26, 2, 0)
TypeError: unorderable types: datetime.datetime() < datetime.timedelta()

您是否尝试过 datetime.datetime 进行比较?

datetime.datetime(2014, 5, 21, 12, 0) < datetime.datetime(2014, 7, 26, 2, 0)
True