计算 python 中每 15 行的方差和标准差

calculate variance and standar deviation of each 15 rows in python

我有一个包含 300 个高度值的数据框,我想计算每 15 行的标准差和方差。我应该有 20 var 和 st.deviation。到目前为止,我已经按照书面脚本做了,但它不起作用。我认为我的问题是我应该如何调用标准差和方差,因为当我计算均值和中位数时脚本工作正常。如何使用 python 修复它?谢谢

import statistics
grouper = df.groupby(df.index // 15)
df_var = grouper.agg( 
        statistics.pstdev(df["height"])
       ,statistics.stdev(df["height"])
)

可能解决问题的一种方法。首先,我创建了一个单列和 300 行(用随机数填充)的虚拟数据集:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100, size=(300,1)))

如果您只需要每 15 行的标准差和方差值,并且您的数据集的长度始终为 300 行,则可以通过以下方法执行此操作。

std_val = []
var_val = []

for i in range(0, len(df)-15):
    df_sub = df[i:i+15]
    std = df_sub.std(axis=0)
    std_val.append(std)
    var = df_sub.var(axis=0)
    var_val.append(var)

print(std_val, var_val) # print list of all values