gpt4 book ai didi

python / Pandas : Using built-in functions as arguments in user-defined function

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:25 25 4
gpt4 key购买 nike

非常简单的查询,但似乎无法找到合适的答案。我想通过 Pandas 方法,例如.sum() 作为我函数的输入。

def something(dataframe,col_name,func):
return dataframe.col_name.func

something(df,'a',sum())

TypeError:求和至少有 1 个参数,结果为 0。

Python 将它与内置函数 sum() 混淆了

最佳答案

你为此使用operator.methodcaller:

from operator import methodcaller

df = pd.DataFrame({'a': range(11)})

def foo(df, col, method):
return methodcaller(method)(df[col])

res_sum = foo(df, 'a', 'sum') # 55
res_avg = foo(df, 'a', 'mean') # 5.0

你的错误的原因是你试图传递一个没有参数的被调用函数的结果,而这个函数恰好需要参数才能工作。

传递字符串的好处是您可以依赖 Pandas 框架中内置的久经考验的方法,例如pd.Series.sum , pd.Series.mean等。虽然您可以尝试将 Python 内置函数和 NumPy 函数直接与 Pandas 系列一起使用,但您可能会发现与您预期的不符。尽可能坚持使用已记录的 Pandas 方法。

关于 python / Pandas : Using built-in functions as arguments in user-defined function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51856337/

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