计算 pandas 数据框中每 5 行的平均值和标准差

Calculate average and standard deviation per 5 rows in a pandas dataframe

我有一个数据框,例如:

A
27.00   
18.00
15.00
7.50
5.00
4.00
3.00
1.50
1.00

现在我想从下到上计算每 5 行的平均值和标准差,并将其设置在上面的行作为附加列,例如:

A       B(avg)  C(standard deviation)
27.00   9.90    6.24899992
18.00   6.90    4.827007354
15.00   4.20    2.252776065
7.50    2.90    1.673320053
5.00        
4.00        
3.00        
1.50        
1.00

9.90 = 平均值 - 4.00、5.00、7.50、15.00、18.00

6.24899992 = 标准偏差-4.00、5.00、7.50、15.00、18.00

我怎样才能做到这一点?

我认为您正在寻找 .rolling() 结合 .mean().std():

df['B'] = df['A'].rolling(5).mean()
df['C'] = df['A'].rolling(5).std()

编辑:

.dropna().reset_index(drop=True) 将每一列带到顶行。

使用滚动并将结果向上移动 5 行

df[['B','С']] = df.rolling(5)['A'].agg(('mean','std')).shift(-5)