У меня есть два кадра данных, которые я хочу объединить, в одном я имею продажи продуктов
product quantity client date door
0 81007104 30 0 2014-01-05 40
1 81007104 41 1 2014-07-05 44
И еще один фрейм данных в том, что у меня есть контракты на продажу, поэтому
product client door valid_from valid_until contract_num
0 81007104 71 6 2013-02-01 2014-02-01 25470
1 81007104 71 6 2014-05-01 2014-11-01 25944
Итак, я хочу объединить оба фрейма данных, используя столбцы product, client, door и date между диапазоном между действительным и действительным до.
Без даты я думаю, что это будет
pd.merge(df1, df2, how='left', on=['product','client','door'])
но поскольку я хочу, чтобы дата находилась между valid_from и valid_until, предыдущее слияние не работает.
С предыдущим слиянием я получаю
product quantity date client door valid from valid until
0 81007104 44.0 2014-03-05 71 6 2013-02-01 2014-02-01
1 81007104 44.0 2014-03-05 71 6 2014-05-01 2014-11-01
2 81007104 44.0 2014-03-05 71 6 2014-11-02 2015-07-20
Но дата не находится между valid_from и valid_until, потому что я хочу, чтобы даты находились в диапазоне valid_from и valid_until
product quantity date client door valid from valid until
0 81007104 44.0 2014-01-05 71 6 2013-02-01 2014-02-01
1 81007104 44.0 2014-07-02 71 6 2014-05-01 2014-11-01
2 81007104 44.0 2015-06-01 71 6 2014-11-02 2015-07-20