У меня есть фрейм данных с именем df1
, который выглядит следующим образом:
Loc Start End
CA 2013-11-08 2014-04-14
CO 2014-04-14 2014-04-16
CA 2014-04-16 2014-04-18
CO 2014-04-18 2014-04-23
И у меня есть еще один фрейм данных с именем df2
, который выглядит следующим образом:
Date Loc Flag
2014-04-14 CO 0
2014-04-14 CO 0
2014-04-14 CO 0
2014-04-15 CO 0
2014-04-15 CO 0
2014-04-16 CO 0
2014-04-16 CO 0
2014-04-16 VA 0
2014-04-16 CA 0
Я хочучтобы построить функцию так, чтобы для каждого периода Start
и End
в df1
функция проверяла, соответствуют ли строки в df2
, которые попадают в этот диапазон дат, то есть совпадения loc
.Там, где они не совпадают, я хочу, чтобы Flag
был помечен 1. Вот код, который я пробовал:
for i in range(len(df1)):
for j in range(len(df2)):
if df2['Date'][j] <= df1['End Date'][i] and \
df2['Date'][j] >= df1['Start Date'][i]:
if df2['Loc'][j] != df1['Loc'][i]:
df2['flag'][j] = 1
Мой код помещает 1 в те места, где места действительно совпадают.Я думаю, что это из-за перекрывающихся дат Start
и End
.Любые советы о том, как я могу исправить это?Спасибо