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

Метод apply

Метод apply применяется к Series и позволяет применить пользовательскую функцию к каждому элементу или к всей серии целиком. Первым параметром передаётся функция-колбэк, вторым - дополнительные аргументы. Метод возвращает новую Series с результатами применения функции.

Синтаксис

ser.apply(func, args=(), **kwargs)

Пример

Давайте применим лямбда-функцию для возведения каждого элемента серии в квадрат:

import pandas as pd ser = pd.Series([1, 2, 3, 4, 5]) res = ser.apply(lambda x: x ** 2) print(res)

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

0 1 1 4 2 9 3 16 4 25 dtype: int64

Пример

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

import pandas as pd def add_prefix(x): return "value: " + str(x) ser = pd.Series([10, 20, 30, 40, 50]) res = ser.apply(add_prefix) print(res)

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

0 value: 10 1 value: 20 2 value: 30 3 value: 40 4 value: 50 dtype: object

Пример

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

import pandas as pd def power(x, exp): return x ** exp ser = pd.Series([1, 2, 3, 4, 5]) res = ser.apply(power, args=(3,)) print(res)

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

0 1 1 8 2 27 3 64 4 125 dtype: int64

Пример

С помощью apply можно применить функцию, которая возвращает несколько значений, например, кортеж:

import pandas as pd def min_max(x): return (x - 1, x + 1) ser = pd.Series([10, 20, 30, 40, 50]) res = ser.apply(min_max) print(res)

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

0 (9, 11) 1 (19, 21) 2 (29, 31) 3 (39, 41) 4 (49, 51) dtype: object

Пример

Применим функцию для извлечения первого символа из строковых значений серии:

import pandas as pd ser = pd.Series(['abcde', 'article', 'user', 'data.csv']) res = ser.apply(lambda x: x[0]) print(res)

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

0 a 1 a 2 u 3 d dtype: object

Пример

С помощью apply можно применить условную логику к каждому элементу серии:

import pandas as pd def classify(x): if x > 0: return "positive" elif x < 0: return "negative" else: return "zero" ser = pd.Series([-2, -1, 0, 1, 2]) res = ser.apply(classify) print(res)

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

0 negative 1 negative 2 zero 3 positive 4 positive dtype: object

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

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