Python (Pandas), если условие внутри groupby

avatar
Dan_Lee
1 июля 2021 в 19:12
41
1
-2

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

      time                   userid   market   device    query      querytype   browser
0     2020-07-01  04:47:21   A        EN-US    PC        WEATHER    WEATHER     EDGE
1     2020-07-01  07:23:52   C        ZH-CN    MOBILE    RECIPIES   FOOD        SAFARI
2     2020-07-01  15:32:57   D        EN-GB    TABLET    DOGS       ANIMALS     CHROME
3     2020-07-01  17:16:21   A        EN-CA    PC        SEATTLE    CITY        EDGE
4     2020-07-01  21:07:21   D        EN-GB    TABLET    DOG FOOD   ANIMAL      CHROME
5     2020-07-01  22:26:21   E        DE-DE    MOBILE    IPHONE     PRODUCTS    CHROME

И я пытаюсь ответить на следующий вопрос: Добавьте в таблицу столбец, содержащий следующий запрос пользователя

.

У меня действительно нет никаких зацепок. Помогите пожалуйста

Источник
Yiannis
1 июля 2021 в 19:15
1

Здравствуйте, постарайтесь включить как можно больше релевантной информации и фрагментов кода. Так мы сможем лучше понять и помочь вам

Ответы (1)

avatar
dww142
1 июля 2021 в 21:16
0

Вы ищете сдвиг, см.: Панды сравнивают следующую строку Сначала убедитесь, что вы отсортированы вовремя

df['next_query'] = df.sort_values(['time']).groupby('userid')['query'].shift(-1)
                   time userid market  device     query querytype browser next_query
0  2020-07-01  04:47:21      A  EN-US      PC   WEATHER   WEATHER    EDGE    SEATTLE
1  2020-07-01  07:23:52      C  ZH-CN  MOBILE  RECIPIES      FOOD  SAFARI        NaN
2  2020-07-01  15:32:57      D  EN-GB  TABLET      DOGS   ANIMALS  CHROME   DOG FOOD
3  2020-07-01  17:16:21      A  EN-CA      PC   SEATTLE      CITY    EDGE        NaN
4  2020-07-01  21:07:21      D  EN-GB  TABLET  DOG FOOD    ANIMAL  CHROME        NaN
5  2020-07-01  22:26:21      E  DE-DE  MOBILE    IPHONE  PRODUCTS  CHROME        NaN
Dan_Lee
8 июля 2021 в 02:38
0

Он смещает весь столбец только на -1, но мне нужно сгруппировать его по идентификатору. Какие-либо предложения?

dww142
8 июля 2021 в 13:06
0

отредактировано выше - преобразовано в один лайнер, добавлено groupby перед сдвигом