У меня есть серия из 33 pandas фреймов данных с некоторым количеством наблюдений 11 переменных. Для каждого из этих фреймов данных я нашел корреляционную матрицу df.corr()
. Я хотел бы для каждой корреляции (var1, var2) получить гистограмму 33 корреляций из каждого фрейма данных и нанести ее на сетку, где каждый раздел представляет переменную.
В меньшем масштабе я делаю это:
import pandas as pd
import numpy as np
np.random.seed(0)
varnames = ['A','B','C']
indexname = 'identifier'
dataframenames = ['One','Two','Three']
#Create three sets of observations
df1 = pd.DataFrame(np.random.rand(4,3),columns=varnames).rename_axis(indexname)
df2 = pd.DataFrame(np.random.rand(7,3),columns=varnames).rename_axis(indexname)
df3 = pd.DataFrame(np.random.rand(5,3),columns=varnames).rename_axis(indexname)
#Store the correlations in a big dataframe
bigDF = pd.DataFrame()
for i,df in enumerate([df1,df2,df3]):
corrval = df.corr()
corrval['Name'] = dataframenames[i] #Not important, but might be for the answer?
corrval = corrval.rename_axis(indexname)
bigDF = pd.concat([bigDF,corrval])
grouping = bigDF.groupby('identifier')
grouping.hist()
Это очень близко к тому, что я хочу: я получаю три цифры, которые показывают корреляцию каждой переменной с A, B и C в каждом подзаголовке:
Я хочу выяснить, как это сделать, с помощью чего-то вроде Seaborn PairGrid : для каждой из переменных поместите гистограмму корреляций в позицию var_i, var_j в сетке. Итак, здесь диагональ будет гистограммой с одним интервалом в 1, а вне диагонали - гистограммами корреляции между A, B; ДО НАШЕЙ ЭРЫ; и А, C. Однако я не могу понять, как это сделать вообще, поскольку я не совсем уверен, что понимаю, как PairGrid читает / интерпретирует фреймы данных и группировки.