在 python 中将函数作为参数传递
Passing Function as parameter in python
我正在尝试创建一个函数来计算滚动平均值或总和:
def rolling_lag_creator(dataset,i,func):
dataset['Bid']=dataset.loc[:,'Bid'].rolling(window=i).func()
return dataset
但是当我调用这个函数时这个函数抛出错误:
rolling_lag_creator(Hypothesis_ADS,5,mean)
错误:
NameError: name 'mean' is not defined
虽然下面的代码工作正常:
dataset['Bid']=dataset.loc[:,'Bid'].rolling(window=5).mean()
谁能帮我看看怎么调用参数之类的方法,谢谢
我猜你需要:
import numpy as np
然后用np.mean
替换mean
mean
是一个 方法 ,而不是一个函数本身。无论如何,属性访问不是那样工作的,但你可以使用 getattr
,像这样:
def rolling_lag_creator(dataset, i, method_name):
method = getattr(dataset.loc[:,'Bid'].rolling(window=i), method_name)
dataset['Bid'] = method()
return dataset
rolling_lag_creator(Hypothesis_ADS, 5, 'mean')
我正在尝试创建一个函数来计算滚动平均值或总和:
def rolling_lag_creator(dataset,i,func):
dataset['Bid']=dataset.loc[:,'Bid'].rolling(window=i).func()
return dataset
但是当我调用这个函数时这个函数抛出错误:
rolling_lag_creator(Hypothesis_ADS,5,mean)
错误:
NameError: name 'mean' is not defined
虽然下面的代码工作正常:
dataset['Bid']=dataset.loc[:,'Bid'].rolling(window=5).mean()
谁能帮我看看怎么调用参数之类的方法,谢谢
我猜你需要:
import numpy as np
然后用np.mean
mean
mean
是一个 方法 ,而不是一个函数本身。无论如何,属性访问不是那样工作的,但你可以使用 getattr
,像这样:
def rolling_lag_creator(dataset, i, method_name):
method = getattr(dataset.loc[:,'Bid'].rolling(window=i), method_name)
dataset['Bid'] = method()
return dataset
rolling_lag_creator(Hypothesis_ADS, 5, 'mean')