Метод cummax
Метод cummax применяется к DataFrame
и вычисляет кумулятивный максимум (накопленный максимум)
по указанной оси. По умолчанию вычисления выполняются
по столбцам (сверху вниз).
Метод возвращает новый DataFrame, где каждый элемент
является максимальным значением среди всех предыдущих элементов
вместе с текущим в пределах столбца или строки.
Синтаксис
df.cummax(axis=0, skipna=True, *args, **kwargs)
Основные параметры:
-
axis- направление вычислений:0(по строкам, для каждого столбца) или1(по столбцам, для каждой строки). По умолчанию0. -
skipna- логический флаг, определяющий, пропускать ли пропущенные значения (NaN). По умолчаниюTrue.
Пример
Давайте вычислим кумулятивный максимум по столбцам (по умолчанию):
import pandas as pd
df = pd.DataFrame({
'a': [1, 3, 2, 5, 4],
'b': [10, 7, 12, 8, 9]
})
print(df.cummax())
Результат выполнения кода:
a b
0 1 10
1 3 10
2 3 12
3 5 12
4 5 12
Пример
Давайте вычислим кумулятивный максимум по строкам (горизонтально):
import pandas as pd
df = pd.DataFrame({
'a': [1, 3, 2, 5, 4],
'b': [10, 7, 12, 8, 9]
})
print(df.cummax(axis=1))
Результат выполнения кода:
a b
0 1 10
1 3 7
2 2 12
3 5 8
4 4 9
Пример
Обработаем таблицу с пропущенными значениями.
По умолчанию пропуски игнорируются (skipna=True):
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, 2, 5],
'b': [10, 8, np.nan, 12, 9]
})
print(df.cummax())
Результат выполнения кода:
a b
0 1.0 10.0
1 1.0 10.0
2 3.0 10.0
3 3.0 12.0
4 5.0 12.0
Пример
Если установить skipna=False, то после встречи
пропущенного значения результат также станет пропущенным:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, np.nan, 3, 2, 5],
'b': [10, 8, np.nan, 12, 9]
})
print(df.cummax(skipna=False))
Результат выполнения кода:
a b
0 1.0 10.0
1 NaN 10.0
2 NaN NaN
3 NaN NaN
4 NaN NaN