pandas.DataFrame.apply
-
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)[source] -
Применяет функцию к входной оси 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 reduction, это обеспечит гораздо лучшую производительность
reduce : boolean или None, по умолчанию None
Попробуйте применить процедуры сокращения. Если DataFrame пустой, apply будет использовать reduce для определения, должно ли быть возвращено значение Series или DataFrame. Если reduce равно None (по умолчанию), возвращаемое значение apply будет угадано путем вызова func с пустой Series (примечание: при угадывании исключения, генерируемые func, будут игнорироваться). Если reduce равно True, всегда будет возвращено Series, а если False — DataFrame.
args : кортеж
Позиционные аргументы, передаваемые функции помимо массива/series
Дополнительные ключевые аргументы будут переданы в функцию как ключевые слова
Возвращает: applied : Series или DataFrame
См. также
-
DataFrame.applymap - Для поэлементных операций
-
DataFrame.aggregate - выполняет только операции агрегирования
-
DataFrame.transform - выполняет только операции преобразования
Примечания
В текущей реализации 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.22.0/generated/pandas.DataFrame.apply.html