python - 按字符串名称执行函数
问题描述
我有一个熊猫系列定义如下:
import pandas as pd
series = pd.Series([11,9,13], index=[1,2,3])
我使用以下方法计算滚动序列:
rolling = series.rolling(window=3, min_periods=3, center=True)
我现在想对method
这个滚动应用一个给定的值series
,如下所示:
method = 'median'
if method == 'median':
series = rolling.median()
elif method == 'mean':
series = rolling.mean()
这可以仅使用字符串名称来实现吗?例如,我会做类似的事情:
if method in ['mean', 'median']:
series = rolling.method()
感谢您在这里的任何帮助。
解决方案
是的,您可以使用内置getattr
功能。
if method in ('mean', 'median'):
series = getattr(rolling, method)()
如果它看起来很阴暗:
>>> getattr(rolling, median) == rolling.median
True
推荐阅读
- excel - Excel VBA循环通过条件格式
- svg - Blazor / SVG 实时更新
- angular - 设置cookie存在于响应中但未在浏览器中设置(应用程序/厨师)Angular
- c - 递归释放循环单链表?
- pyspark - Pyspark - 从数组中删除所有字母元素
- c - 如何将一串二进制数转换为 C 中的字符(每个字符都必须有一个半字节)?
- c - 堆栈指针的内存分配
- javascript - 如何通过一键单击将多个产品添加到 Shopify 购物车
- python - 我应该用哪个名称保存裁剪的文本图像文件,以便我可以将这些连同其基本事实转录一起提供?
- api - Sharepoint Online 从 Linux 创建文件夹