无法绘制一列相对于另一列的热图

时间:2019-01-11 11:50:20

标签: python python-3.x pandas heatmap correlation

借助问题Correlation heatmap,我尝试了以下操作:

import pandas
import seaborn as sns 
dataframe = pandas.read_csv("training.csv", header=0,index_col=0)
for a in list(['output']):
    for b in list(dataframe.columns.values):
        corr.loc[a, b] = dataframe.corr().loc[a, b]
        print(b)
print(corr)
sns.heatmap(corr['output'])

我遇到以下错误:

IndexError: Inconsistent shape between the condition and the input (got (8, 1) and (8,))

我不想让所有值具有所有值相关性热图。我只想使一列与其他列相关。

请告诉我我想念的东西。

2 个答案:

答案 0 :(得分:1)

在线

sns.heatmap(corr['output'])

corr['output']pd.SeriesDocs状态

  
    
      

data:矩形数据集

             可以强制为ndarray的

2D数据集。如果提供了Pandas DataFrame,则索引/列信息将用于标记列和行。

    
  

您写

  
    
      

我不想让所有值具有所有值相关性热图。我只想让一列与其他列相关。

    
  

在这种情况下,为什么要设置热图?您的数据是一维的。您可能要使用条形图,例如,使用documentation

dataframe.corrwith(dataframe['some_specific_column']).plot(kind='barh')

答案 1 :(得分:1)

您尝试从pd.Series构建热图-这不起作用。 pd.Series是1D对象,而seaborn.heatmap()通常用于2D数据结构。

sns.heatmap(corr[['output']])-将完成工作

df = pd.DataFrame(data=[[1,2,3],[5,4,3],[5,4,12]],index=[0,1,2],columns=['A','B','C'])
df.corr().loc['A',:]

出[13]:

A 1.0

B 1.0

C 0.5

名称:A,dtype:float64

sns.heatmap(df.corr().loc[['A'],:])

enter image description here