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

Метод cummin

Метод cummin применяется к DataFrame и возвращает таблицу с кумулятивным минимумом (нарастающим итогом по минимуму) для каждого столбца. По умолчанию вычисления выполняются по столбцам, то есть для каждой строки берется минимальное значение среди всех предыдущих строк этого столбца. Параметр axis позволяет изменить направление вычислений, а параметр skipna управляет обработкой пропущенных значений. Результат возвращается в виде нового DataFrame.

Синтаксис

df.cummin(axis=None, skipna=True)

Пример

Рассмотрим базовый пример вычисления кумулятивного минимума по столбцам на таблице с числами:

import pandas as pd df = pd.DataFrame({ 'a': [5, 3, 4, 2, 1], 'b': [10, 8, 9, 7, 6] }) res = df.cummin() print(res)

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

a b 0 5 10 1 3 8 2 3 8 3 2 7 4 1 6

В столбце 'a' значения уменьшаются от 5 до 1, поэтому каждая следующая строка показывает все меньший минимум. В столбце 'b' минимум также постепенно уменьшается.

Пример

Теперь вычислим кумулятивный минимум по строкам. Для этого передадим параметр axis=1:

import pandas as pd df = pd.DataFrame({ 'a': [5, 8, 1], 'b': [3, 6, 4], 'c': [7, 2, 9] }) res = df.cummin(axis=1) print(res)

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

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

В первой строке минимум сначала равен 5, затем при переходе ко второму столбцу становится 3, и в третьем столбце остается 3. Во второй строке минимум последовательно равен 8, 6 и 2.

Пример

Рассмотрим обработку пропущенных значений. По умолчанию параметр skipna=True, поэтому пропуски игнорируются:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [5, np.nan, 3, 2], 'b': [10, 8, np.nan, 6] }) res = df.cummin() print(res)

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

a b 0 5.0 10.0 1 NaN 8.0 2 NaN NaN 3 2.0 NaN

В столбце 'a' пропуск во второй строке приводит к пропуску в результате, так как нельзя вычислить минимум с пропущенным значением. Однако если установить skipna=False, то пропуски будут распространяться:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [5, np.nan, 3, 2], 'b': [10, 8, np.nan, 6] }) res = df.cummin(skipna=False) print(res)

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

a b 0 5.0 10.0 1 NaN 8.0 2 NaN NaN 3 NaN NaN

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

Пример

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

import pandas as pd df = pd.DataFrame({ 'a': [5, 3, 4, 2, 1], 'b': [10, 8, 9, 7, 6] }) cummin_df = df.cummin() is_min = cummin_df == df print(is_min)

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

a b 0 True True 1 True True 2 False False 3 True True 4 True True

Значения True указывают на позиции, где текущее значение является новым минимумом.

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

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