Сохраняйте другие столбцы при использовании min () с groupby

Я использую groupby pandas, чтобы удалить все строки, которые не имеют минимум определенного столбца. Что-то вроде этого:

 df1 = df.groupby("item", as_index=False)["diff"].min() 

Однако, если у меня больше этих двух столбцов, другие столбцы будут отброшены. Могу ли я сохранить эти столбцы с помощью groupby, или мне придется искать другой способ сбросить строки?

Мои данные выглядят так:

  item diff otherstuff 0 1 2 1 1 1 1 2 2 1 3 7 3 2 -1 0 4 2 1 3 5 2 4 9 6 2 -6 2 7 3 0 0 8 3 2 9 

и должно закончиться следующим образом:

  item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 

но я получаю:

  item diff 0 1 1 1 2 -6 2 3 0 

Я просматривал документацию и ничего не нашел. Я пытался:

 df1 = df.groupby(["item", "otherstuff"], as_index=false)["diff"].min() df1 = df.groupby("item", as_index=false)["diff"].min()["otherstuff"] df1 = df.groupby("item", as_index=false)["otherstuff", "diff"].min() 

Но ни одна из этих работ (реализована с последней, что синтаксис предназначен для агрегирования после группы).

One Solution collect form web for “Сохраняйте другие столбцы при использовании min () с groupby”

Метод # 1: используйте idxmin() чтобы получить индексы элементов минимальной diff , а затем выберите те:

 >>> df.loc[df.groupby("item")["diff"].idxmin()] item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 [3 rows x 3 columns] 

Способ № 2: сортировка по diff , а затем взять первый элемент в каждой группе item :

 >>> df.sort("diff").groupby("item", as_index=False).first() item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 [3 rows x 3 columns] 

Обратите внимание, что результирующие индексы отличаются друг от друга, хотя содержимое строк одинаково.

  • Python читает данные Кассандры в пандах
  • Слияние и вычитание столбцов DataFrame в пандах?
  • отбрасывать первую и последнюю строку из каждой группы
  • Как передать все данные в dataframe, которые извлекают из листа excel в highchart?
  • уникальные значения pandas несколько столбцов
  • Какова хорошая стратегия поиска смешанных типов в столбцах Pandas?
  • Извлеките веб-службу SAS Stored Process в Python и сохраните ее в кадре данных
  • Предварительный файл данных перед pandas read_csv
  • Python - лучший язык программирования в мире.