Python 使用多列的数据帧滚动应用函数

Python 使用多列的数据帧滚动应用函数,python,pandas,Python,Pandas,我正在尝试将函数应用于滚动窗口。我需要引用dataframe中的多个列来计算函数的输出。 下面是我正在尝试做的一些示例代码 import pandas as pd import statsmodels.formula.api as smf d = pd.DataFrame({ 'Col1': range(0,10), 'Col2': range(10,20), 'Col3': range(20,30) }) func = lambda x: smf.ols('

我正在尝试将函数应用于滚动窗口。我需要引用dataframe中的多个列来计算函数的输出。 下面是我正在尝试做的一些示例代码

import pandas as pd
import statsmodels.formula.api as smf

d = pd.DataFrame({
    'Col1': range(0,10),
    'Col2': range(10,20),
    'Col3': range(20,30)
    })

func = lambda x: smf.ols('Col1 ~ Col2', data=x).fit().params[1]

d['Out'] = d.rolling(3).apply(func)

感谢您

目前执行的
滚动
分别处理每一列,因此不可能对两个不同的列求和

您可以通过以下方式进行测试:

def func(x):
    print (x)
    return x.sum()

d.rolling(3).apply(func)

当前实现的
滚动
分别处理每个列,因此不可能对两个不同的列求和

您可以通过以下方式进行测试:

def func(x):
    print (x)
    return x.sum()

d.rolling(3).apply(func)

关于完成所需任务的有效方法有什么建议吗?@kav-你能从样本数据中添加预期的输出吗?我打算使用的lambda func将输入传递到另一个方法中。我为这个问题添加了一些额外的代码。很抱歉造成混淆,我试图使最初的问题保持简单。@kav-我想您需要任何关于有效完成所需任务的方法的建议吗?@kav-您能从样本数据中添加预期的输出吗?我打算使用的lambda func将输入传递到另一个方法中。我为这个问题添加了一些额外的代码。很抱歉搞混了,我试图让最初的问题保持简单。@kav-我想你需要