gpt4 book ai didi

python Pandas : apply a function with arguments to a series

转载 作者:IT老高 更新时间:2023-10-28 21:06:54 24 4
gpt4 key购买 nike

我想将一个带参数的函数应用于 python pandas 中的系列:

x = my_series.apply(my_function, more_arguments_1)
y = my_series.apply(my_function, more_arguments_2)
...

documentation描述了对 apply 方法的支持,但它不接受任何参数。是否有不同的方法可以接受参数?或者,我是否缺少一个简单的解决方法?

更新(2017 年 10 月): 请注意,由于最初提出此问题,pandas apply() 已更新以处理位置和关键字参数以及上面的文档链接现在反射(reflect)了这一点,并展示了如何包含任何一种类型的参数。

最佳答案

新版本的 pandas do 允许您传递额外的参数(参见 new documentation)。所以现在你可以这样做了:

my_series.apply(your_function, args=(2,3,4), extra_kw=1)

位置参数添加在序列元素之后


对于旧版本的 Pandas :

文档清楚地解释了这一点。 apply 方法接受一个 python 函数,该函数应该有一个参数。如果你想传递更多参数,你应该使用 Joel Cornett 在他的评论中建议的 functools.partial

一个例子:

>>> import functools
>>> import operator
>>> add_3 = functools.partial(operator.add,3)
>>> add_3(2)
5
>>> add_3(7)
10

您还可以使用 partial 传递关键字参数。

另一种方法是创建一个 lambda:

my_series.apply((lambda x: your_func(a,b,c,d,...,x)))

但我认为使用 partial 更好。

关于 python Pandas : apply a function with arguments to a series,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12182744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com