python将方法名称传递给函数

时间:2019-01-02 19:12:33

标签: python pandas

我正在处理pandas数据帧,我想通过函数参数传递聚合方法:

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

显然,由于agg_method被用作pd.DataFrame的方法,因此这与传递定义的函数不同。就是正在运行

aggregate(df, by, mean)

引发异常

NameError: name 'mean' is not defined

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

理想情况下,我会避免传递字符串(或类似字符串)来进行类似操作

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

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

谢谢!

0 个答案:

没有答案