python-3.x - 检查Python中的日期列是否在最近3个月的范围内

标签 python-3.x date datetime python-dateutil

给定一个小数据集如下:

   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

我想检查日期是否在从现在起3个月的范围内(从今天开始,如果2020-12-25,那么范围将为 [2020-09-25, 2020-12-25]),如果不是,则返回带有 N 的新列 check .

预期结果如下:

   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

关于python-3.x - 检查Python中的日期列是否在最近3个月的范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65446876/

相关文章:

datetime - Hive SQL:如何按最大时间对记录组进行子集

c# - 比较可为 null 的日期时间对象

android - 如何引用当前日期从传递时间字符串开始计时(以毫秒为单位)

mysql数据库的python3编码

Python。 from dateutil.relativedelta import * 在 shell 中有效,但在脚本中无效

javascript - 如何计算两个日期之间经过的 "quarters"的数量,其中季度不仅仅是一年中的一个季度,而是特定日期?

php - 选择表中具有相同用户名的行并比较日期间隔

python - 如何从Python中的数据框中选择一些%的记录?

python - 调整打印函数格式以跳过缺失值

javascript - 未定义时刻与空时刻