gpt4 book ai didi

python - 为什么我需要 lambda 来将函数应用于 Pandas Dataframe?

转载 作者:行者123 更新时间:2023-11-28 17:22:34 26 4
gpt4 key购买 nike

我有一个 Pandas 数据框,我正在尝试使用 apply() 函数在一列中的条目上传递一个函数。

我的函数是这样的形式:

def foo(Y):
#accepts a pandas data frame
#carries out some search on the text in each row of the dataframe
#groups successful searches
#return a new column as a pandas series

我的数据框的形式是:

    Info    WN    RN
0 XX YY ZZ
1 AA BB CC
2 JJ KK LL

我尝试执行:

df['SR'] = (df['Info'].apply(foo(x)))

我的错误如下:

File "<ipython-input-11-ae54015436d8>", line 1, in <module>
df['SR'] = (df['Info'].apply(foo(x))
NameError: name 'x' is not defined

但是如果我使用:

df['SR'] = (df['Info'].apply(lambda x:foo(x)))

它工作正常。

我了解 Lambda 的工作原理(至少我认为我了解)。我不明白为什么我需要它。

为什么我需要 lambda 才能成功通过数据框传递函数? apply() 函数不应该按照定义这样做吗?

或者我是否以另一种方式有效地做到了这一点,即将我的数据框传递给函数,并返回一些输出,而不是将函数迭代地应用于数据框(如果这有意义的话)?

任何人都可以提供任何见解吗?

衷心感谢!

最佳答案

lambda 是不必要的,你可以这样做

df['SR'] = df['Info'].apply(foo)

在这里它仍然有效

关于python - 为什么我需要 lambda 来将函数应用于 Pandas Dataframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40717105/

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