Python Pandas 遍历字典键(元组)并将变量相互绘制
Python Pandas Loop through Dictionary Keys (which are tuples) and plot variables against each other
我有一个相关矩阵(以 DataFrame 的形式),我从中 return 一个系列,它是前 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
有关我的意思的示例,请参阅 this。
我获取生成的 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')])
现在,我想做的是回到我原来的 DataFrame,从那里我计算了相关性,并通过字典键将这些列的元组相互绘制。
有点像这样:
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')
从某种意义上说,我想“解压”(不知道我是否用对了这个词)这些元组并将它们相互绘制?
这可能吗,还是我只是误会了?
先行致谢
您可以在 for 循环中迭代字典键,然后对元组中的每个元素进行子集化:
for key in top_corrs:
sns.lmplot(y = key[0], x=key[1], data=originaldata, palette='Set1')
我有一个相关矩阵(以 DataFrame 的形式),我从中 return 一个系列,它是前 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
有关我的意思的示例,请参阅 this。 我获取生成的 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')])
现在,我想做的是回到我原来的 DataFrame,从那里我计算了相关性,并通过字典键将这些列的元组相互绘制。
有点像这样:
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')
从某种意义上说,我想“解压”(不知道我是否用对了这个词)这些元组并将它们相互绘制?
这可能吗,还是我只是误会了?
先行致谢
您可以在 for 循环中迭代字典键,然后对元组中的每个元素进行子集化:
for key in top_corrs:
sns.lmplot(y = key[0], x=key[1], data=originaldata, palette='Set1')