gpt4 book ai didi

python - 在滚动窗口上的 pandas 数据框上应用自定义函数

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:07 25 4
gpt4 key购买 nike

假设您有一个包含 1000 个收盘价的数据框。您想要应用名为 compute_var() 的风险计算函数(假设 VaR)以滚动方式显示最近 90 个收盘价。你会怎么做?我推测是apply() :

def compute_var(df):
return do_calculations_on(df[-90:])

def compute_rolling_var(self):
self.var = self.closing.apply(compute_var)

问题是.apply仅通过 1 天关闭compute_var,而不是数据帧。所以它给出了一个错误。

我发现的唯一可行的解​​决方案是使用迭代式算法 (.iterrow()):我将迭代索引传递给 compute_var它会裁剪结束数据框 self.closing[:i]在对最后 90 行执行计算之前,它会通过 .loc(i) = computer_var_value 填充 df.var 数据帧.

我怀疑有更好的方法。

最佳答案

答案是 apply_rolling,如 EdChum + min_periods 调整下划线

问题源于输入数据中的一些 NaN 值,并且默认情况下 min_periods=None,其 react 就像no 您的窗口中允许使用 NaN 值(此处为 90 天)。对我来说似乎非常违反直觉,但设置 min_periods=1 解决了我的问题。

关于python - 在滚动窗口上的 pandas 数据框上应用自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30806838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com