gpt4 book ai didi

python Pandas : apply a function with arguments to a series. 更新

转载 作者:太空狗 更新时间:2023-10-30 02:11:38 24 4
gpt4 key购买 nike

我想将带参数的函数应用于 pandas 系列:我找到了两种不同的 SO 解决方案:

python pandas: apply a function with arguments to a series

Passing multiple arguments to apply (Python)

它们都依赖于 functool.partial 的使用,并且它们工作得非常好。顺便说一下,新版本的 Pandas 支持多个参数:无论如何我不明白它是如何工作的。示例:

a=pd.DataFrame({'x':[1,2],'y':[10,20]})
a['x'].apply(lambda x,y: x+y, args=(100))

它退出时出现:

TypeError: <lambda>() argument after * must be a sequence, not int

最佳答案

TypeError 表示您将错误的类型传递给了 lambda 函数 x + y。它期望 args 是一个序列,但它得到了一个 int。你可能认为 (100) 是一个元组(一个序列),但在 python 中它是组成元组的逗号:

In [10]: type((100))
Out[10]: int

In [11]: type((100,))
Out[11]: tuple

所以把你的最后一行改成

In [12]: a['x'].apply(lambda x, y: x + y, args=(100,))
Out[12]:
0 101
1 102
Name: x, dtype: int64

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

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