датафрейм python последние x строк каждой записи в столбце - PullRequest
0 голосов
/ 23 октября 2019

Нужно выбрать последние x покупок каждого клиента.

Существует ли эффективный способ выбрать последние x строк для каждого клиента? Скажем, у нас есть фрейм данных, который выглядит следующим образом:

df1 = 
Client Product ID
A      1       330
B      1       15
A      5       329
A      3       328
A      2       327
B      6       14
A      7       326
A      7       325
C      9       205
C      3       204
C      2       203
C      1       202
C      1       201
B      2       13
B      2       12
B      2       11

, где идентификатор - это просто инкрементный идентификатор (то есть идентификатор дает вам номер покупки, которую совершил клиент), и мы хотим выбрать последнийдве покупки для каждого клиента, чтобы выходные данные выглядели так:

df2=
Client Product ID
A      1       330
A      5       329
B      1       15
B      6       14
C      9       205
C      3       204

Возможно ли это сделать без циклического перебора кадра данных?

1 Ответ

0 голосов
/ 23 октября 2019

Сортировка кадра данных по ID в порядке убывания, группировка по Client и «выбор» первых 2 строк каждой группы.

df1.sort_values('ID', ascending=False).groupby('Client').head(2)

Client  Product   ID
     A        1  330
     A        5  329
     C        9  205
     C        3  204
     B        1   15
     B        6   14
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...