具有2个数值变量和1个类别变量的热图

时间:2019-03-28 19:34:08

标签: python pandas seaborn

我遇到了一个问题,我认为这主要与编码有关,请提供一些帮助。 我将需要在python框架(Jupyter Notebook)中执行数据可视化,其中包含3个变量:其中2个是数字变量(num_var1num_var2),一个是分类变量(cat_var)。 我想通过对num_var1进行分类来使用它。

我认为我可以使用热图可视化这三个变量:

    在列中通过
  • num_var1进行分箱
  • 在行中
  • cat_var
  • num_var2作为颜色

我认为我可以使用pd.cut()函数对数值变量进行装箱,因此我编写了以下代码:

cat_means = df.groupby([pd.cut(df.num_var1, 10), 'cat_var']).mean()['num_var2'] 
cat_means = cat_means.reset_index(name = 'num_var2_avg') 
cat_means = cat_means.pivot(index = 'cat_var', columns = pd.cut(df.num_var1, 10), values = 'num_var2_avg') 
seaborn.heatmap(cat_means, annot = True, fmt = '.3f', cbar_kws = {'label' : 'mean(num_var2)'});

输出的不是以下预期的热图,而是以下错误:

KeyError: "[Interval(-0.01, 1.001, closed='right')\n Interval(-0.01, 1.001, closed='right')\n Interval(-0.01, 1.001, closed='right') ...\n Interval(-0.01, 1.001, closed='right')\n Interval(-0.01, 1.001, closed='right')\n Interval(-0.01, 1.001, closed='right')] not in index"

有人可以帮我吗?

非常感谢,

Federico

0 个答案:

没有答案