Python 使用多列的数据帧滚动应用函数
我正在尝试将函数应用于滚动窗口。我需要引用dataframe中的多个列来计算函数的输出。 下面是我正在尝试做的一些示例代码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('
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-我想你需要