计算 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)
我有一个数据框,例如:
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)