【问题标题】:Check if date column is in the range of last 3 months in Python检查日期列是否在 Python 中最近 3 个月的范围内
【发布时间】:2020-12-25 09:29:42
【问题描述】:

给定一个小数据集如下:

   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 中做到这一点?谢谢。

【问题讨论】:

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


    【解决方案1】:

    以下解决方案有效:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      相关资源
      最近更新 更多