Захватить строки с максимальной датой из кадра данных панд - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть датафрейм панд, который выглядит следующим образом:

enter image description here

и я хочу получить для каждого отдельного идентификатора строку с максимальной датой, чтобы мои окончательные результаты выглядели примерно так:

enter image description here

Мой столбец даты имеет тип данных «объект». Я пробовал группировать, а затем пытался захватить максимум, как показано ниже:

idx = df.groupby(['ID','Item'])['date'].transform(max) == df_Trans['date']
df_new = df[idx]

Однако я не могу получить желаемый результат. Любая помощь по этому вопросу будет принята с благодарностью!

1 Ответ

0 голосов
/ 08 ноября 2018

idxmax

Должно работать, пока index уникален или максимальный индекс не повторяется.

df.loc[df.groupby('ID').date.idxmax()]

OP (отредактировано)

Должно работать, пока максимальные значения уникальны.В противном случае вы получите все строки, равные максимуму.

df[df.groupby('ID')['date'].transform('max') == df['date']]

WB перейдите к решению

А также очень хорошее решение.

df.sort_values(['ID', 'date']).drop_duplicates('date', keep='last')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...