Как объединить строки столбца на основе временного диапазона другого столбца - PullRequest
0 голосов
/ 15 января 2020

У меня есть следующая таблица в pandas.

  • view_time: время, когда пользователь просмотрел объявление
  • click_time: время, когда пользователь нажимал на объявление (если оно было кликнул)
  • ad_id: идентификатор объявления
view_time    click_time    username    ad_id
00:00        00:06         a           abc
03:10                      a           def
04:20        14:35         a           ghi
06:30        07:41         a           jkl
14:40                      a           mno
15:50                      a           pqr

Я хочу добавить столбец (bag_of_ads), в котором будут показаны все объявления, которые были кликнули за последние 6 лет. часы каждого view_time, сгруппированные по username. Обратите внимание, что click_time может иметь большее значение, чем следующая view_time.

view_time    click_time    username    ad_id    bag_of_ads (sorted alphabetically)
00:00        00:06         a           abc      
03:10                      a           def      abc
04:20        14:35         a           ghi      abc
06:30        07:41         a           jkl
14:40                      a           mno      ghi, jkl
15:50                      a           pqr      ghi

Воспроизвести упрощенный пример:

df = pd.DataFrame({'view_time': ['00:00','03:10','04:20','06:30','14:40','15:50'],
       'click_time': ['00:05', '', '14:35', '07:41', '', ''],
       'username': ['a','a','a','a','a','a'],
       'ad_id': ['abc','def','ghi','jkl','mno','pqr']
       })
df['view_time'] = pd.to_datetime(df['view_time'])
df['click_time'] = pd.to_datetime(df['click_time'])
...