如何解决检查日期列是否在 Python 中最近 3 个月的范围内
给定一个小数据集如下:
id date
0 1 2020-01-01
1 2 2020-12-02
2 3 2020-09-26
3 4 2020-05-04
4 5 2020-01-05
我想检查 date
从现在起是否在 3 个月 的范围内(从今天开始如果 2020-12-25
,那么范围将是 [2020-09-25,2020-12-25]
) ,如果不是,则返回带有 check
的新列 N
。
预期的结果会是:
id date check
0 1 2020-01-01 N
1 2 2020-12-02 NaN
2 3 2020-09-26 NaN
3 4 2020-05-04 N
4 5 2020-01-05 N
我怎么能在 Python 中做到这一点?谢谢。
解决方法
以下解决方案有效:
import datetime
import dateutil.relativedelta
start_date = (datetime.datetime.now() + dateutil.relativedelta.relativedelta(months=-3)).strftime('%Y-%m-%d')
end_date = datetime.datetime.now().strftime('%Y-%m-%d')
mask = df['date'].between(start_date,end_date,inclusive=True)
df.loc[~mask,'check'] = 'N'
出:
id date check
0 1 2020-01-01 N
1 2 2020-12-02 NaN
2 3 2020-09-26 NaN
3 4 2020-05-04 N
4 5 2020-01-05 N
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。