Python Pandas Цикл по словарным ключам (которые являются кортежами) и вычерчивание переменных друг против друга - PullRequest
0 голосов
/ 24 октября 2018

У меня есть корреляционная матрица (в форме DataFrame), из которой я возвращаю Серию, которая является n первыми коррелированными парами столбцов и значением корреляции:

HCT    HGB            0.928873
ALT    AST            0.920744
MCH    MCV            0.861742
bpsys  bpdia          0.846069
HCT    RBC            0.769507
HGB    RBC            0.697879
       gender_Male    0.690716
CL     SODIUM         0.688227
LYM    WBC            0.672971
RBC    gender_Male    0.663275
HCT    gender_Male    0.660515
MCH    MCHC           0.571524
age    HGB            0.512578
HGB    MCHC           0.506935
age    gender_Male    0.493219
dtype: float64

См. это для примера того, что я имею в виду.Я беру результирующий объект Series, а затем преобразую его в словарь следующим образом:

top_corrs = top_corrs.to_dict()

Полученные ключи этого словаря являются кортежами из первых n коррелированных переменных, которые я нашел:

top_corrs.keys()

В результате получается 15 ключей:

dict_keys([('HCT', 'HGB'), ('ALT', 'AST'), ('MCH', 'MCV'), ('bpsys', 'bpdia'), ('HCT', 'RBC'), ('HGB', 'RBC'), ('HGB', 'gender_Male'), ('CL', 'SODIUM'), ('LYM', 'WBC'), ('RBC', 'gender_Male'), ('HCT', 'gender_Male'), ('MCH', 'MCHC'), ('age', 'HGB'), ('HGB', 'MCHC'), ('age', 'gender_Male')])

Теперь я хотел бы вернуться к исходному кадру данных, из которого я рассчитал корреляции, и построить эти кортежи столбцов друг против друга, проходя по циклу.словарные ключи.

Примерно так:

Key1 = ('HCT', 'HGB')

sns.lmplot(y = ‘HCT’  x=’HGB’, data= originaldata, hue=huevar, col=colvar, palette='Set1')

Key2 = ('ALT', 'AST')

sns.lmplot(y = ‘HCT’  x=’HGB’, data= originaldata, hue=huevar, col=colvar, palette='Set1')

В каком-то смысле я хочу «распаковать» (не знаю, правильно ли я использую это слово) эти кортежи и построить их друг против друга?

Возможно ли это, или яЯ просто споткнулся?

Спасибо в avbance

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете перебирать ключи словаря в цикле for, а затем подгруппировать каждый элемент в кортеже:

for key in top_corrs:    
    sns.lmplot(y = key[0],  x=key[1], data=originaldata, palette='Set1')
...