我必须遵循熊猫数据帧:
a
1.0
1.5
1.3
1.2
1.9
0.8
然后我想将我的新自定义函数应用到这个列中,它有一个window
参数,我的意思是,它只需要从起始点开始处理n个项目:
因此,为了将此函数应用到名为b
的新列中,我使用了以下方法:
df['b'] = hislack(df['a'].values, 3)
但它返回以下值:
a b
1.0 3.9
1.5 3.9
1.3 3.9
1.2 3.9
1.9 3.9
0.8 3.9
这是最后一行的结果:0.8 + 1.9 + 1.2 = 3.9
因此,预期产出为:
a b
1.0 Nan
1.5 Nan
1.3 3.8
1.2 4.0
1.9 4.4
0.8 3.9
如何防止对所有行应用相同的公式结果?在
您需要DataFrame.rolling:
或者:
^{pr2}$一般来说,您可以这样做:
df['a'].rolling(window).apply(fun)
,其中将window
参数传递给rolling
,将函数传递给apply
。在相关问题 更多 >
编程相关推荐