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

问题描述

我有一个包含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