Функция apply() в pandas позволяет запустить пользовательскую функцию на строках или столбцах DataFrame, либо на каждом элементе Series. Её поведение контролируется параметром axis:
axis=0 — применяет функцию по столбцамaxis=1 — применяет функцию по строкамdf.apply(lambda x: x.max() - x.min(), axis=0) # диапазон значений по столбцам
apply() особенно полезна, когда встроенных функций pandas или NumPy недостаточно для твоей логики. Она принимает любой callable — включая сложные, многошаговые пользовательские функции — что делает её очень гибкой.
Векторизованные операции, с другой стороны, это встроенные методы вроде .sum(), .mean() или функции NumPy типа np.sqrt(). Ключевые различия:
apply() выполняется на чистом Python, проходя по строкам или столбцам один за другим, что вносит дополнительные накладные расходыapply() может быть в разы медленнее, чем эквивалентные векторизованные решенияapply(), когда логика слишком сложная, чтобы выразить её встроенными функциямиapply() как запасной вариант для читаемости кода, когда производительность не критичнаapply() даёт максимальную гибкость в обмен на производительность. Всегда отдавай предпочтение векторизованным операциям при работе с большими объёмами данных и прибегай к apply() только тогда, когда встроенной альтернативы нет.
Функция apply() с axis=0 применяет функцию к каждому столбцу DataFrame, а axis=1 применяет её к каждой строке.
Новый — ещё не проверен сообществом
Вы