如何检查熊猫 DateTimeIndex 日期是否属于列表?

问题描述

我有一个频率为分钟的 Pandas 日期时间索引 idx,我还有一个日期列表(或一组)list_of_dates。我想返回一个大小与 idx 相同的布尔数组,条件是日期时间索引所属的日期在 list_of_dates 中。是否可以以矢量化方式(即不使用 for 循环)来实现?

解决方法

由于您只想比较日期,因此您可以删除时间并像这样进行比较:

>>> df.index.normalize().isin(list_of_dates)

或者:

>>> df.index.floor('D').isin(list_of_dates)