У меня есть следующая таблица в 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'])