首页 > 解决方案 > 如何遍历字典中的多个数据框

问题描述

我创建了一个似乎由多个按位置解析的数据帧组成的字典。但是,当我尝试遍历 dict 以按位置运行关联时,它看起来好像在整个集合上运行关联。

我已按位置(Store_ID)拆分数据帧,循环将打印每个 Store_ID,但由于每次迭代中的相关性完全相同,我怀疑它只是使用整个数据集,而不是遍历字典中的数据帧。

我开始:

stores = df.Store_ID.unique()

storedict = {elem : pd.DataFrame() for elem in stores}

for key in storedict.keys():
    storedict[key] = df[:][df.Store_ID == key]

np.array(storedict)打印按每个位置分组的数组。

但是这个循环(如下),虽然它在打印时遍历存储,但似乎返回相同的相关系数,就好像它只是在整个位置集(存储)上重复 Pearson 相关。

我想要做的是让它显示,例如商店 ID 和与该商店 ID 关联的数据的相关矩阵,然后是下一个商店 ID 及其相关矩阵,等等......

我一定在这里遗漏了一些非常明显的东西。它是什么?

编辑:

所以当我运行时:

for store in stores:
    print("\r")
    print(store)
    pd.set_option('display.width', 100)
    pd.set_option('precision', 3)
    correlations = data.corr(method='pearson')
    print(correlations)

我得到相同的相关性列表。我想知道是不是因为data在全球范围内定义为:

data = df.drop(['datestring'], axis=1)
data.index = df.datestring
values = data.values

我认为data.corr忽略元组并查看原始数据框。如何定义相关性,以便它为每个商店的“数据”迭代运行,而不是所有商店?再次在这里,我想做的是将一个数据帧迭代地拆分为多个数据帧,并将每个存储上的相关性作为一个单独的数据帧运行(或者,在不增加代码量来解决可能出现的问题的情况下,最容易让它工作)循环。

标签: pythonpandasloopscorrelation

解决方案


推荐阅读