python比较日期列表以数据帧中的开始和结束日期列

时间:2018-12-08 01:20:48

标签: python pandas

问题:我有一个包含两列的数据框:开始日期和结束日期。我也有日期列表。因此,可以说数据看起来像这样:

data = [[1/1/2018,3/1/2018],[2/1/2018,3/1/2018],[4/1/2018,6/1/2018]]
df = pd.DataFrame(data,columns=['startdate','enddate'])

dates=[1/1/2018,2/1/2018]

我需要做的是:

1)为日期列表中的每个日期创建一个新列

2)对于df中的每一行,如果创建的新列的日期在开始日期和结束日期之间,则分配1;否则,如果不是,则分配0。

我尝试使用zip,但是后来我意识到df行将是数千行,因为日期列表将包含大约24个项目(跨越2年),所以当日期列表用完时它会停止,即,在24点。

因此,下面是原始df的外观以及之后的外观:

之前:

   startdate    enddate
0 2018-01-01 2018-03-01
1 2018-02-01 2018-03-01
2 2018-04-01 2018-06-01

之后:

  startdate   enddate 1/1/2018 2/1/2018
0  1/1/2018  3/1/2018        1        1
1  2/1/2018  3/1/2018        0        1
2  4/1/2018  6/1/2018        0        0

在此方面的任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

使用work_staffs广播

numpy