pandas.DataFrame.apply
-
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds) -
Применяет функцию к входной оси DataFrame.
Объекты, передаваемые функциям, являются объектами Series с индексом, либо индексом DataFrame (axis=0), либо столбцами (axis=1). Тип возвращаемого значения зависит от того, агрегирует ли переданная функция, или аргумента reduce, если DataFrame пустой.
Параметры: func : функция
Функция, применяемая к каждому столбцу/строке
axis : {0 или ‘index’, 1 или ‘columns’}, по умолчанию 0
- 0 или ‘index’: применяет функцию к каждому столбцу
- 1 или ‘columns’: применяет функцию к каждой строке
broadcast : boolean, по умолчанию False
Для агрегирующих функций возвращает объект того же размера со значениями, распространёнными
raw : boolean, по умолчанию False
Если False, преобразует каждую строку или столбец в Series. Если raw=True, переданная функция будет получать объекты ndarray. Если вы применяете только функцию NumPy для сокращения, это позволит добиться гораздо лучшей производительности
reduce : boolean или None, по умолчанию None
Попытаться применить процедуры сокращения. Если DataFrame пустой, apply будет использовать reduce, чтобы определить, должен ли результат быть Series или DataFrame. Если reduce равно None (по умолчанию), значение возврата apply будет угадано путём вызова func с пустой Series (примечание: во время угадывания исключения, поднимаемые func, будут игнорироваться). Если reduce равно True, Series всегда будет возвращаться, а если False – DataFrame.
args : кортеж
Позиционные аргументы, которые нужно передать функции в дополнение к массиву/ряду
Дополнительные ключевые аргументы будут переданы как ключевые аргументы функции
Возвращает: applied : Series или DataFrame
См. также
-
DataFrame.applymap - Для поэлементных операций
Примечания
В текущей реализации apply вызывает func дважды для первого столбца/строки, чтобы определить, может ли он использовать быстрый или медленный путь. Это может привести к неожиданному поведению, если func имеет побочные эффекты, поскольку они будут действовать дважды для первого столбца/строки.
Примеры
>>> df.apply(numpy.sqrt) # returns DataFrame >>> df.apply(numpy.sum, axis=0) # equiv to df.sum(0) >>> df.apply(numpy.sum, axis=1) # equiv to df.sum(1)
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.18.1/generated/pandas.DataFrame.apply.html