выбор конкретной строки из объекта groupby в python

1
id    marks  year 
1     18      2013
1     25      2012
3     16      2014
2     16      2013
1     19      2013
3     25      2013
2     18      2014

предположим, что теперь я группирую вышеописанное значение id командой python.
    grouped = file.groupby(file.id)

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

Пожалуйста, дайте мне знать команду, которую я пытаюсь применить, но она имеет только логическое выражение. Я хочу всю строку с последним годом.

  • 0
    Более конкретно. Ваш вопрос не имеет смысла.
  • 0
    после того как я сгруппирую строки с идентификатором, я хочу строки из каждой группы, где год является максимальным
Показать ещё 3 комментария
Теги:
pandas
group-by

1 ответ

3
Лучший ответ

Я собрал это вместе, используя следующее: Python: Получение строки, которая имеет максимальное значение в группах с помощью groupby

Итак, в основном мы можем группировать столбец "id", а затем вызывать transform в столбце "год" и создавать булевский индекс, где год соответствует максимальному значению года для каждого "id":

In [103]:

df[df.groupby(['id'])['year'].transform(max) == df['year']]
Out[103]:
   id  marks  year
0   1     18  2013
2   3     16  2014
4   1     19  2013
6   2     18  2014
  • 0
    спасибо @EdChum
  • 0
    как я могу получить групповые метки, я имею в виду, что мне нужен список {1,2,3} в приведенном выше примере, который я упомянул в квесте
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню