我创建了一个字典,该字典似乎由按位置解析的多个数据帧组成。但是,当我尝试遍历字典以按位置运行关联时,看起来好像是在整个集合上运行关联。
我已按位置(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
忽略了元组并查看原始数据帧。如何定义相关性,以使其针对每个商店(而非所有商店)的“数据”迭代运行?再次在这里,我想做的是将一个数据帧迭代地拆分为多个数据,并在每个商店上将相关性作为一个单独的数据帧运行(或者,最简单的方法是在不增加代码量来解决可能出现的问题的情况下使其正常工作循环播放。