从Pandas MultiIndex系列创建HeatMap

时间:2019-01-30 23:27:34

标签: python pandas seaborn

我有一个Pandas DF,我需要创建一个热图。我的数据看起来像这样,我想将“年数”放入“列”中,将“天数”放入行中,然后将其与Seaborn一起使用来创建热图

我尝试了多种方法,但是选择DF时总是会出现“形状不一致”的情况,那么关于如何进行变形的任何建议呢?

年月日是本系列的索引

2016

  Tuesday  4
  Wednesady 6
  .....

2017

  Tuesday  4.4
  Monday   3.5
 ....

将seaborn导入为sns ax = sns.heatmap(dayofweek)

1 个答案:

答案 0 :(得分:0)

如果您有一个像这样的DataFrame:

years = range(2016,2019)
months = range(1,6)

df = pd.DataFrame(index=pd.MultiIndex.from_product([years,months]))
df['vals'] = np.random.random(size=len(df))

您可以使用以下方法将数据重新格式化为矩形:

df2 = df.reset_index().pivot(columns='level_0',index='level_1',values='vals')

sns.heatmap(df2)

enter image description here