1

请帮助我找出如何检查“chosen_date”是否在“date1”和“date2”列之间的范围内。

from datetime import datetime
chosen_date = datetime.today().strftime("%Y-%m-%d")
date1          date2
2000-06-02     2000-06-02
2000-06-03     2000-06-02
2000-06-04     2000-06-02
2000-06-05     2000-06-02
2000-06-06     2000-06-02
2000-06-07     2000-06-02
4

2 回答 2

3

我想你想要:

df[(df['date1'] < chosen_date) & (chosen_date < df['date2'])]

但是,这在您的示例中总是不会产生任何结果,因为 date2 <= date1

于 2022-02-17T12:48:24.857 回答
0

作为@mozway 的答案的替代方案,您可以考虑使用额外的列并使用between.

数据

import pandas as pd
df = pd.DataFrame({"date1":['2000-01-01', '2000-01-10'],
                   "date2":['2000-01-03', '2000-01-11']})

chosen_date = '2000-01-02'

添加 selected_date 作为列

chosen_date = '2000-01-02'
df["chosen_date"] = chosen_date

检查 selected_date 是否在范围内

df["is_in_range"] = df["chosen_date"].between(df["date1"], df["date2"])
        date1       date2 chosen_date  is_in_range
0  2000-01-01  2000-01-03  2000-01-02         True
1  2000-01-10  2000-01-11  2000-01-02        False
于 2022-02-17T13:49:26.657 回答