访问熊猫滚动调用中的所有列

时间:2019-04-16 19:49:23

标签: python pandas

我对通过滚动窗口计算统计数据感兴趣。统计数据将在多列上计算。这是一个玩具示例,用于计算滚动窗口上的回归系数。

def regression_coef(df):
    if df.shape[0]==0:
        return np.array([np.NaN, np.NaN])
    y = df.y.values
    X = df.drop('y',axis = 1).values
    reg = LinearRegression().fit(X,y).coef_.round(2)
    return reg

time = np.arange(5,3605,5)
x = np.random.normal(size = time.size)
z = np.random.normal(size = time.size)
y = 2*x+z + np.random.normal(size = time.size) 
df = pd.DataFrame({'x':x, 'z':z, 'y':y}, index = pd.to_datetime(time, unit ='s'))

当我致电df.rolling('20 T').apply(regression_coef)时,出现以下错误:AttributeError: 'numpy.ndarray' object has no attribute 'y'。这使我相信df.rolling可以计算各个列的统计信息,而不是在20分钟的窗口内找到所有观测值。

如何实现我想要的?也就是说,如何在滚动窗口中计算regression_coef?特别是,我很想知道是否可以解决此问题,以便与偏移量和现有的熊猫API一起使用。

0 个答案:

没有答案