У меня есть два кадра данных, df_a
и df_b
:
df_a = pd.DataFrame({
'date_a': [
datetime.datetime(2020,1,9,1,1,1,1),
datetime.datetime(2020,1,4,1,1,1,1),
datetime.datetime(2020,1,1,1,1,1,1),
datetime.datetime(2020,1,6,1,1,1,1)
],
'ID': ['a', 'a', 'c', 'a']
})
df_b = pd.DataFrame({
'date_b': [
datetime.datetime(2020,1,8,1,1,1,1),
datetime.datetime(2020,1,5,1,1,1,1),
datetime.datetime(2020,1,5,1,1,1,1)
],
'ID_1': ['a', 'b', 'f'],
'ID_2': ['d', 'a', 'c']
})
И я хочу создать новый столбец (V
) в df_a
, то есть True
, если есть запись в df_b
, где df_b.ID_1
или df_b.ID_2
соответствует df_a.ID
AND df_b.date_b
, меньше или равна df_a.date_a
. Результат будет выглядеть следующим образом:
df_a
date_a ID V
0 2020-01-09 01:01:01.000001 a True
1 2020-01-04 01:01:01.000001 a False
2 2020-01-01 01:01:01.000001 c False
3 2020-01-06 01:01:01.000001 a True
По сути, я хочу проверить для каждой строки в df_a
, есть ли историческая запись для этого ID
. Надеюсь, что вопрос имеет смысл!