Так что я пытался потерпеть неудачу и надеюсь на некоторую помощь.Я хочу
- Группировать по пользователям и сортировать по отметке времени (именно так настроен нижеприведенный кадр данных)
- Теперь я хочу просмотреть все просмотры допервый щелчок и сгруппируйте его в одно событие с самой ранней отметкой времени
- . Или же удалите все, что находится между первым просмотром и первым щелчком *
- Если у них нет щелчкови только представления, все строки должны быть сведены в одну строку
Для некоторого контекста мы собираем данные, но из-за ошибки в том, как подсчитываются представления, каждый новый сеанс создает большое количестводополнительные просмотры в начале сеанса.
Поэтому по этой причине мы хотим избавиться от всех представлений до щелчка, кроме самого первого представления.Если для определенного пользователя щелчка нет, то единственное, что остается, - это самый первый просмотр.Однако после первого щелчка представления собраны правильно, поэтому мы хотим оставить их как есть.
Так что, если ввод является следующим (использование целых чисел для отметки времени, чтобы упростить)
import pandasкак pd
in = {'id': [123, 123, 123, 123, 234, 234,234, 234, 234, 234, 456, 456, 456],
'activity': ['view','view','click','click','view','view','view','click', 'view', 'click', 'view', 'view', 'view'] ,
'timestamp': [1, 2,3,4,1,2,3,4,5,6,1,2,3]}
pd.DataFrame(in)
Вывод должен быть
out = {'id': [123, 123, 123, 234, 234, 234, 234, 456],
'activity': ['view','click','click','view','click','view', 'click', 'view'] ,
'timestamp': [1, 3,4,1,4,5,6,1,]}
pd.DataFrame(out)
Если у кого-то есть какие-либо идеи, как это сделать, он будет очень признателен!