Передача аргументов в функции применения серий в Python Pandas
Библиотека pandas предоставляет метод 'apply()' применить функцию к каждому элементу серии. Однако более старые версии Pandas не позволяют передавать дополнительные аргументы функции.
Решение для старых версий Pandas:
Чтобы справиться с этим ограничением в старых версиях панд вы можете использовать функции 'functools.partial()' или 'lambda':
Использование 'functools.partial()':
import functools
import operator
# Define a function with multiple arguments
def add_3(a, b, c):
return a b c
# Create a partial function by binding extra arguments
add_3_partial = functools.partial(add_3, 2, 3)
# Apply the partial function to a series
series.apply(add_3_partial)
Использование 'lambda':
# Create a lambda function to pass extra arguments to the apply method
lambda_func = lambda x: my_function(a, b, c, d, ..., x)
# Apply the lambda function to the series
series.apply(lambda_func)
Решение для новых версий Pandas:
С октября 2017 года pandas поддерживает передачу как позиционных, так и ключевых аргументов непосредственно в ' apply()' метод:
series.apply(my_function, args=(2, 3, 4), extra_kw={"example": 5})
В этом синтаксисе позиционные аргументы добавляются после элемента Series, а аргументы ключевых слов передаются как словарь.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3