当前位置: 首页 > 知识库问答 >
问题:

如何计算Pandas中滚动窗口中的波动率(标准差)

阮健
2023-03-14
w = 10
for timestep in range(length):
    subSer = Ser[timestep:timestep + w]
    mean_i = np.mean(subSer)
    vol_i = (np.sum((subSer - mean_i)**2) / len(subSer))**0.5
    volList.append(w_i)

共有1个答案

闾丘鸣
2023-03-14

看起来您正在查找series.rolling。您可以将std计算应用于结果对象:

roller = Ser.rolling(w)
volList = roller.std(ddof=0)

如果不打算再次使用滚动窗口对象,可以编写一行程序:

volList = Ser.rolling(w).std(ddof=0)

请记住,ddof=0在这种情况下是必要的,因为标准偏差的规范化是由len(Ser)-ddof,并且ddof在Pandas中默认为1

 类似资料:
  • 问题内容: 样本数据可能会有助于解释我想做的事情,而不是解释它,因此,我将从此开始。 这是我目前正在使用的数据: 我正在尝试在15分钟的时间内滚动显示此数据中的出现次数。该数据的预期结果如下: 样本数据: 我可以通过以下方式 使它 起作用: 但是,我想避免使用子查询,而建议使用(或其他任何可能的解决方案)解决方案。 这可能吗?还是子查询是正确的解决方案? 问题答案: 一种方法-如果表很大,可能比嵌

  • 问题内容: 我正在寻找一种类似的各种功能的方法,但我希望滚动计算的窗口由一个值范围(例如,DataFrame列的值范围)定义,而不是由窗口中的行数。 例如,假设我有以下数据: 如果执行类似的操作,则会得到一个滚动总和,其中每个窗口包含5行。但是我想要的是一个滚动总和,其中每个窗口都包含的一定范围的值。也就是说,我希望能够执行类似的操作,并得到一个结果,其中第一个窗口包含所有介于1和5之间的行,然后

  • 我有一分钟一分钟的熊猫数据帧df。我希望将加权应用于返回,并计算滚动加权均方差,窗口=10。我可以计算非加权性病,年化: 在Numpy中还有另一个关于加权std的问题,但我对滚动加权std很好奇。(加权标准偏差,单位为NumPy?) 计算加权标准差的公式为:https://math.stackexchange.com/questions/320441/standard-deviation-of-t

  • 问题内容: 我正在尝试改善为图像的每个像素计算位于像素附近的像素的标准偏差的功能。我的函数使用两个嵌入式循环在整个矩阵中运行,这是我程序的瓶颈。我猜有可能通过摆脱numpy摆脱循环来改善它,但是我不知道如何进行。欢迎任何建议! 问候 问题答案: 绝妙的技巧:您可以仅在平方值和窗口中的值总和下计算标准偏差。 因此,您可以对数据使用统一滤波器来非常快速地计算标准偏差: 这是 可笑的 比原来的功能更快。

  • 问题内容: 考虑 我想获取滚动窗口3的最大值的索引 我想要的是 我做了什么 这显然不是我想要的 问题答案: 没有简单的方法可以执行此操作,因为传递给rolling-applied函数的参数是一个普通的numpy数组,而不是pandas Series,因此它不了解索引。此外,滚动函数必须返回浮点结果,因此,如果它们不是浮点的,则不能直接返回索引值。 这是一种方法: 这个想法是采用argmax值,并通

  • 问题内容: 考虑一下您有一些不均匀的时间序列数据: 假设我想在1ms的时间内进行滚动求和: 目前,我将所有内容都放回多头,并在cython中进行,但是在纯熊猫中有可能吗?我知道您可以执行.asfreq(’U’)之类的操作,然后填充并使用传统函数,但是一旦行数超过玩具数量,就无法缩放。 作为参考,这是一个骇人的,不是快速的Cython版本: 在更大的系列上对此进行演示: 问题答案: 您可以使用求和和