python - 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()
似乎必须有更好的方法。这可能吗?
谢谢!
解决方案
推荐阅读
- python - 如何在.csv文件中仅重写一帧(行[2])?
- python - 颜色间距接近零的颜色条(几乎像反对数缩放)
- python - 出现错误时停止压缩文件
- javascript - 使用NodeJS查询数据库时如何处理超时?
- php - imagestring 不能写入条形码字符串
- vba - 使用 VBS [Visio] 在锁定图层上编辑形状
- sql-server - SQL Server:COMMIT 上的事务可以死锁吗?
- azure-devops - 禁用匿名身份验证的 Azure Devops 本地服务器上的适当代理设置是什么?
- python - future=True 在 sqlalchemy 的 create_engine() 函数中究竟做了什么?
- android - 防止在 webview 中暴露本地文件的 URI