我想将一个带参数的函数应用于 python pandas 中的系列:
x = my_series.apply(my_function, more_arguments_1)
y = my_series.apply(my_function, more_arguments_2)
...
该 文档 描述了对 apply 方法的支持,但它不接受任何参数。是否有不同的方法可以接受参数?或者,我是否缺少一个简单的解决方法?
更新(2017 年 10 月): 请注意,由于最初提出此问题,pandas apply()
已更新为处理位置和关键字参数,上面的文档链接现在反映了这一点,并显示了如何包含任何一种类型的参数。
原文由 Abe 发布,翻译遵循 CC BY-SA 4.0 许可协议
较新版本的 pandas 确实 允许您传递额外的参数(请参阅 新文档)。所以现在你可以这样做:
位置参数添加 在 系列元素之后。
对于旧版本的熊猫:
文档清楚地解释了这一点。 apply 方法接受一个 python 函数,该函数应该有一个参数。如果你想传递更多参数,你应该使用
functools.partial
正如 Joel Cornett 在他的评论中所建议的那样。一个例子:
您还可以使用
partial
传递关键字参数。另一种方法是创建一个 lambda:
但我认为使用
partial
更好。