【问题标题】:How to see if in-between two date columns, specific dates fall into, pandas如何查看两个日期列之间的特定日期是否属于 pandas
【发布时间】:2023-02-25 03:23:09
【问题描述】:

我有一个看起来像这样的熊猫数据框:

import pandas as pd
pd.DataFrame({'date_start' : ['2022-12-06', '2022-12-25', '2022-12-16'],
              'date_end': ['2022-12-08', '2022-12-26', '2022-12-30']})

date_start  date_end
0   2022-12-06  2022-12-08
1   2022-12-25  2022-12-26
2   2022-12-16  2022-12-30

我想创建一个额外的列来指示是否之间date_startdate_end最后一个dates_xmas = ['2022-12-24','2022-12-25'] 存在

输出数据框应如下所示:

pd.DataFrame({'date_start' : ['2022-12-06', '2022-12-25', '2022-12-16'],
              'date_end': ['2022-12-08', '2022-12-26', '2022-12-30'],
              'xmas':[0,1,1]})

date_start  date_end    xmas
0   2022-12-06  2022-12-08  0
1   2022-12-25  2022-12-26  1
2   2022-12-16  2022-12-30  1

我怎样才能做到这一点 ?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    不完全是所描述的逻辑,但假设日期是连续的(在此处),您可以在两个比较中使用最小值和最大值来使用两个掩码:

    df['xmas'] = (df['date_start'].le('2022-12-25')
                 &df['date_end'].ge('2022-12-24')).astype(int)
    

    输出:

       date_start    date_end  xmas
    0  2022-12-06  2022-12-08     0
    1  2022-12-25  2022-12-26     1
    2  2022-12-16  2022-12-30     1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      相关资源
      最近更新 更多