Я пытаюсь объединить два фрейма данных: один имеет ежемесячную активность пользователя, другой - ежемесячную плату, и у обоих есть идентификационный номер. Я хочу объединить активность и сборы в ежемесячные строки.
all_dat = pd.merge(activity,fees,on=[id,year_month])
Когда я пытаюсь присоединиться к ним по идентификатору и времени (datetime64), результат имеет только первое совпадение для каждого пользователя с датой 2017-1-1.
Несмотря на то, что я четко могу найти много одинаковых значений времени в обоих фреймах данных, слитый дает мне только строки с 2017-1-1.
> print(set(all_dat[year_month]))
{Timestamp('2017-01-01 00:00:00')}
Структура сборов выглядит примерно так:
USER_ID Name Time Fees
123 John 2016-12-01 300
123 John 2017-01-01 500
123 John 2017-02-01 400
А вид деятельности один выглядит так:
USER_ID Name Time Activity
123 John 2017-01-01 20
123 John 2017-01-02 30
Я бы хотел получить что-то подобное в результате слияния:
USER_ID Name Time Activity Fees
123 John 2017-01-01 20 500
123 John 2017-01-02 30 400
Но я получаю только первый матч:
USER_ID Name Time Activity Fees
123 John 2017-01-01 20 500
Не думаю, что это проблема dtype, что могло пойти не так?