检查日期数组是否在python中的日期范围内



我有一个日期数组,应该在2021年9月至2022年9月之间。如何检查每个日期是否都在该范围内?

例如以下是阵列中的一些日期

calendar202109['date'].dt.date.unique()
array([datetime.date(2021, 9, 16), datetime.date(2021, 9, 17),
datetime.date(2021, 9, 18), datetime.date(2021, 9, 19),
datetime.date(2022, 9, 15)], dtype=object)

您可以直接使用numpy:

a = array([datetime.date(2021, 9, 16), datetime.date(2021, 9, 17),
datetime.date(2021, 9, 18), datetime.date(2021, 9, 19),
datetime.date(2022, 9, 15)], dtype=object)
((a > pd.Timestamp('2021-09-01')) & (a < pd.Timestamp('2022-08-31'))).all()

输出:False

识别异常值:

m = ((a > datetime.date(2021, 9, 1)) & (a < pd.Timestamp('2022-08-31')))
a[~m]

输出:array([datetime.date(2022, 9, 15)], dtype=object)

注意。在这里使用pd.Timestamp('2021-09-01')是为了方便,您可以使用datetime.date(2021, 9, 1)

如果没有熊猫的帮助,你就可以做到这一点:

from datetime import date
list_ = [date(2021, 9, 16),
date(2021, 9, 17),
date(2021, 9, 18),
date(2021, 9, 19),
date(2022, 9, 15)]
lo_bound = date(2021, 9, 1)
hi_bound = date(2022, 8, 31)
for d in list_:
if not lo_bound <= d <= hi_bound:
print(d, 'Out of range')

输出:

2022-09-15 Out of range

相关内容

  • 没有找到相关文章

最新更新