首页 > 解决方案 > 计算for循环中生成的数据帧中数据之间的标准偏差

问题描述

我有一个循环生成相同大小的数据帧(96x96 甚至是,将这些数据帧叠加在一起,然后将结果除以迭代次数(计数)。这提供了一个平均值。现在我需要计算 stdev 之间那些生成的数据帧。一个循环可能会生成多达 365 个 DF。我知道,我需要稍微重新制定逻辑,因为要计算 stdev,需要所有数据帧的所有数字。

点他的最好方法是什么?我正在考虑使用 MultiIndex,但由于我是 Python 新手,所以我无法理解这一点。

因此,这是一个简单的示例代码:

import pandas as pd
import numpy as np

zero_data = np.zeros(shape=(5,5))
df = pd.DataFrame(zero_data, columns=[0,1,2,3,4])

for i in range(1,5):
    df1 = pd.DataFrame(np.random.randint(0,100,size=(5, 5)), columns=[0,1,2,3,4])
    zero_data = zero_data + df1
print(zero_data)

在此代码中,创建了 5 个数据框并将它们叠加在一起。我如何计算这 5 个数据帧的标准差?

标签: pythonpandas

解决方案


好的,我没有做'zero_data = zero_data + df1',而是使用pd.concat([df1+df2]),然后我使用reset_index( ) 并传递给group_by(by='index'),然后我应用 mean, std管他呢:

for i in range(0,5):
df1 = pd.DataFrame(np.random.randint(0,100,size=(5, 5)), columns=[0,1,2,3,4])
df = pd.concat([df, df1])

df.reset_index().groupby(by='index').sum()

结果比我想象的要容易:)


推荐阅读