如何在python的循环中创建一个字典来保存数据帧



我从一些蒙特卡罗模拟中保存了大量数据。我在10个时间步内使用不同的随机抽取模拟20件事情。因此,对于给定数量的随机抽签,我有一个文件夹,其中有10个.csv文件(每个时间步一个),其中有20列数据和n行每列,其中n是该模拟中的随机抽签次数。目前,我加载数据的基本代码看起来像这样:

import pandas as pd
import numpy as np
load_path = r'...pathtodata'
numScenarios = [100, 500, 1000, 2500, 5000, 10000, 20000]
yearsSimulated = np.arange(1,11)
for n in numScenarios:
folder_path = load_path + 'draws = ' + str(n)
for year in yearsSimulated:
filename = 'year ' + str(year) + '.csv'
path = folder_path + filename
df = pd.read_csv(path)
# save df.describe() somewhere

我想以某种方式有效地保存df.describe(),以便我可以比较随机抽取的次数如何影响给定时间步长的20个事物的结果。也就是说,我最终想要一些我可以轻松访问的对象,它将存储每个单独时间步长的所有df.describe()输出。但我不确定有什么好方法可以做到这一点。前面的一些问题似乎表明,字典可能是解决这个问题的方法,但我还没能让它们发挥作用。

编辑:

我的最后一种方法是用一堆循环来回答这里的问题。现在我有:

class ngram(dict): 
"""Based on perl's autovivification feature."""
def __getitem__(self, item):
try:
return super(ngram, self).__getitem__(item)
except KeyError:
value = self[item] = type(self)()
return value
results = ngram()
for i, year in enumerate(years):
year_str = str(year)
ann_stats = pd.DataFrame()
for j, n in enumerate(numScenarios):
n_str = str(n)
folder_path = load_path + 'draws = ' + str(n)
filename = 'scenarios ' + str(year) + '.csv'
path = folder_path + filename
df = pd.read_csv(path)
ann_stats['mean'] = df.mean()
ann_stats['std. dev'] = df.std()
ann_stats['1%'] = df.quantile(0.01)
ann_stats['25%'] = df.quantile(0.25)
ann_stats['50%'] = df.quantile(0.5)
ann_stats['75%'] = df.quantile(0.75)
ann_stats['99%'] = df.quantile(0.99)
results[year_str][n_str] = ann_stats.T

那么现在每个时间步长和绘制次数的汇总数据将作为一个数据帧通过

访问
test = results[year_str][n_str]

其中test的列保存了我的20件事中的每一件的结果。