РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
381 of 687 menu

Метод idxmin

Метод idxmin применяется к объекту GroupBy и возвращает индекс строки, содержащей минимальное значение в каждой группе для указанного столбца. Если минимальных значений несколько, возвращается индекс первого из них.

Синтаксис

groupby_obj.idxmin([axis, skipna])

Параметры метода idxmin:

  • axis (по умолчанию 0) - ось, по которой ищем минимум. 0 - по строкам, 1 - по столбцам
  • skipna (по умолчанию True) - пропускать ли пропущенные значения

Пример

Давайте создадим таблицу с данными и сгруппируем её по столбцу 'a':

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, 5, 20, 15, 30, 25], 'c': [100, 200, 300, 150, 400, 350] }) print(df)

Результат выполнения кода:

a b c 0 1 10 100 1 1 5 200 2 2 20 300 3 2 15 150 4 3 30 400 5 3 25 350

Теперь применим метод idxmin к группированному объекту:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, 5, 20, 15, 30, 25], 'c': [100, 200, 300, 150, 400, 350] }) grouped = df.groupby('a') res = grouped.idxmin() print(res)

Результат выполнения кода:

b c a 1 1 0 2 3 3 3 5 5

Как видно из результата, для каждой группы (значения 'a') возвращается индекс строки с минимальным значением в столбцах 'b' и 'c':

  • Для группы 1 минимальное значение в столбце 'b' равно 5 (индекс 1), а в столбце 'c' - 100 (индекс 0)
  • Для группы 2 минимальное значение в столбце 'b' равно 15 (индекс 3), а в столбце 'c' - 150 (индекс 3)
  • Для группы 3 минимальное значение в столбце 'b' равно 25 (индекс 5), а в столбце 'c' - 350 (индекс 5)

Пример

Давайте получим индекс минимального значения только для одного столбца:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, 5, 20, 15, 30, 25], 'c': [100, 200, 300, 150, 400, 350] }) grouped = df.groupby('a') res = grouped['b'].idxmin() print(res)

Результат выполнения кода:

a 1 1 2 3 3 5 dtype: int64

В результате мы получили для каждой группы индекс строки, где значение столбца 'b' минимально.

Пример

Рассмотрим работу метода с пропущенными значениями:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, np.nan, 20, 15, 30, 25], 'c': [100, 200, 300, np.nan, 400, 350] }) grouped = df.groupby('a') res = grouped.idxmin(skipna=True) print(res)

Результат выполнения кода:

b c a 1 0 0 2 3 2 3 5 5

Если же установить параметр skipna в False, то пропущенные значения будут учитываться при поиске минимума:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, np.nan, 20, 15, 30, 25], 'c': [100, 200, 300, np.nan, 400, 350] }) grouped = df.groupby('a') res = grouped.idxmin(skipna=False) print(res)

Результат выполнения кода:

b c a 1 1 0 2 3 3 3 5 5

Пример

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

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 3, 3], 'b': [10, 5, 20, 15, 30, 25], 'c': [100, 200, 300, 150, 400, 350] }) grouped = df.groupby('a') min_indices = grouped['b'].idxmin() res = df.loc[min_indices] print(res)

Результат выполнения кода:

a b c 1 1 5 200 3 2 15 150 5 3 25 350

Таким образом, мы получили строки с минимальным значением столбца 'b' в каждой группе.

Смотрите также

  • метод idxmax,
    который возвращает индекс максимального значения в группе
  • метод min,
    который возвращает минимальное значение в группе
  • метод max,
    который возвращает максимальное значение в группе
  • класс GroupBy,
    который используется для группировки данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить