gpt4 book ai didi

python - 检查 python 日期列表中的任何日期是否在两个日期列之间

转载 作者:太空宇宙 更新时间:2023-11-03 23:57:35 26 4
gpt4 key购买 nike

我有一个包含两列的数据框。一个是 START_DATE,一个是 END_DATE。我还有一个 python 日期列表。我想要数据框中的第三列,指示我的 python 列表中的任何日期是否落在每个特定行的数据框中的 START_DATE 和 END_DATE 之间。如果日期列表中的日期介于 START_DATE 和 END_DATE 之间,则第三列应显示为真。

dates_list = ['2019-01-06', '2019-04-08']

START_DATE|END_DATE|
____________________
2019-01-01|2019-01-12
2019-01-03|2019-01-05
2019-04-03|2019-04-09

我想要第三列显示

TRUE
FALSE
TRUE

在 pyspark 中使用会很棒,但 pandas 也可以。

最佳答案

这可以使用 pd.IntervalIndex 来完成.让我们从将所有日期转换为日期时间开始:

from datetime import datetime
df = df.apply(pd.to_datetime)
dates = [datetime.strptime(x, '%Y-%m-%d') for x in dates_list]

现在让我们使用它的 from_arrays 构建一个 pd.IntervalIndex方法,并检查哪些区间包含 any使用列表理解从列表中获取日期:

ix = pd.IntervalIndex.from_arrays(df['START_DATE'],df['END_DATE'],closed='both')
[any(date in i for date in dates) for i in ix]
# [True, False, True]

关于python - 检查 python 日期列表中的任何日期是否在两个日期列之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56992916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com