python -Как сгенерировать 'PairGrid' гистограмм корреляций из pandas фрейма данных - PullRequest
0 голосов
/ 06 мая 2020

У меня есть серия из 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 в каждом подзаголовке:

3 figures for variables A, B and C respective. Each contains a subplot with a histogram of its correlations with A, B, and C in the 3 dataframes

Я хочу выяснить, как это сделать, с помощью чего-то вроде Seaborn PairGrid : для каждой из переменных поместите гистограмму корреляций в позицию var_i, var_j в сетке. Итак, здесь диагональ будет гистограммой с одним интервалом в 1, а вне диагонали - гистограммами корреляции между A, B; ДО НАШЕЙ ЭРЫ; и А, C. Однако я не могу понять, как это сделать вообще, поскольку я не совсем уверен, что понимаю, как PairGrid читает / интерпретирует фреймы данных и группировки.

...