Python Pandas 中向 Series Apply 函数传递参数
pandas 库提供了 'apply()' 方法将函数应用于 Series 的每个元素。然而,旧版本的 pandas 不允许向函数传递额外的参数。
旧版本 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)
Using '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 年 10 月起,pandas 支持将位置参数和关键字参数直接传递给 ' apply()'方法:
series.apply(my_function, args=(2, 3, 4), extra_kw={"example": 5})
在此语法中,位置参数添加在 Series 元素之后,而关键字参数作为字典传递。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3