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

Метод apply

Метод apply применяется к DataFrame и позволяет применить функцию к каждой строке или каждому столбцу. В параметре func передаётся вызываемый объект, а параметр axis определяет направление: если axis=0 (по умолчанию), функция применяется к каждому столбцу, если axis=1 - к каждой строке. Метод возвращает новый объект с результатами.

Синтаксис

df.apply(func[, axis=0])

Пример

Применим функцию к каждому столбцу, которая вычисляет сумму элементов:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.apply(sum) print(res)

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

a 15 b 150 dtype: int64

Пример

Применим функцию к каждой строке, которая вычисляет сумму элементов:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.apply(sum, axis=1) print(res)

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

0 11 1 22 2 33 3 44 4 55 dtype: int64

Пример

Применим пользовательскую функцию, которая возвращает произведение элементов:

import pandas as pd def mult(ser): res = 1 for val in ser: res *= val return res df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.apply(mult) print(res)

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

a 120 b 12000000 dtype: int64

Пример

Передадим в функцию дополнительные аргументы с помощью параметра args:

import pandas as pd def pow_sum(ser, p): return sum(val ** p for val in ser) df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.apply(pow_sum, args=(2,)) print(res)

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

a 55 b 5500 dtype: int64

Пример

Используем лямбда-функцию для вычисления диапазона значений в каждой строке:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4, 5], 'b': [10, 20, 30, 40, 50] }) res = df.apply(lambda row: max(row) - min(row), axis=1) print(res)

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

0 9 1 18 2 27 3 36 4 45 dtype: int64

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

  • метод map,
    который применяет функцию к элементам серии
  • метод pipe,
    который позволяет применить функцию ко всей таблице
  • метод groupby,
    который выполняет группировку данных
  • метод assign,
    который добавляет новые столбцы в таблицу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить