首页 > 解决方案 > python将方法名称传递给函数

问题描述

我正在使用熊猫数据框,我想通过函数参数传递聚合方法:

def aggregate(df, by, agg_method):
    return df.groupby(by).agg_method()

显然,这与传递定义的函数不同,因为agg_method它被用作pd.DataFrame. IE。跑步

aggregate(df, by, mean)

引发异常

NameError: name 'mean' is not defined

我假设是因为它不是一个定义的函数,而是我试图调用 pandas ( pandas.DataFrame.mean())的方法

理想情况下,我会避免传递一个字符串(或类似的)来做类似的事情

if agg_method == "mean":
    return df.groupby(by).mean()

似乎必须有更好的方法。这可能吗?

谢谢!

标签: pythonpandas

解决方案


推荐阅读