python-如何使用函数使用.rolling.apply将两列返回到数据帧
我有两个基本相同代码的函数。两个函数只返回不同的值。 函数是相当CPU密集的,所以我希望能够在调用中完成这一切,而不是两个单独的调用python-如何使用函数使用.rolling.apply将两列返回到数据帧,python,dataframe,function,apply,rolling-computation,Python,Dataframe,Function,Apply,Rolling Computation,我有两个基本相同代码的函数。两个函数只返回不同的值。 函数是相当CPU密集的,所以我希望能够在调用中完成这一切,而不是两个单独的调用 def compute_slope(i, y): output = linregress(list(range(len(y))), y) return output.slope def compute_intercept(i, y): output = linregress(list(range(len(y))), y) retu
def compute_slope(i, y):
output = linregress(list(range(len(y))), y)
return output.slope
def compute_intercept(i, y):
output = linregress(list(range(len(y))), y)
return output.intercept
我这样称呼他们:
dataframe['intercept'] = dataframe['close'].rolling(window=self.lookback).apply(self.compute_intercept)
dataframe['slope'] = dataframe['close'].rolling(window=self.lookback).apply(self.compute_slope)
def compute(i, y):
output = linregress(list(range(len(y))), y)
return output.slope output.interception
dataframe['output', 'intercept'] = dataframe['close'].rolling(window=self.lookback).apply(self.compute)
我怎么能只打一个电话就得到同样的结果呢
大概是这样的:
dataframe['intercept'] = dataframe['close'].rolling(window=self.lookback).apply(self.compute_intercept)
dataframe['slope'] = dataframe['close'].rolling(window=self.lookback).apply(self.compute_slope)
def compute(i, y):
output = linregress(list(range(len(y))), y)
return output.slope output.interception
dataframe['output', 'intercept'] = dataframe['close'].rolling(window=self.lookback).apply(self.compute)
任何帮助都将不胜感激。当然,最简单和最快的(CPU方面的)将是最好的。
谢谢你真的,没有人知道这个解决方案吗?