我正在处理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()
似乎必须有更好的方法。这可能吗?
谢谢!