使用seaborn热图

2024-06-01 14:05:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用seaborn的热图时遇到了一些问题

代码:

df[['latitude', 'longitude', 'interest_level']]
a = df.pivot('latitude', 'longitude', 'interest_level')

错误:

^{pr2}$

利息水平有多个重复值。我的设想是lat/long将形成一个2D图,兴趣级别是地图中的值。兴趣级别是分类的,只有3个唯一值。在

我是不是用错了类,因为我在学习seaborn热图教程http://seaborn.pydata.org/generated/seaborn.heatmap.html


Tags: 代码df错误水平seaborn级别level兴趣
1条回答
网友
1楼 · 发布于 2024-06-01 14:05:04

您需要^{}和一些聚合函数,如meansum,…:

#subset for pivot_table or groupby solution is not necessary, you can omit it
#df = df[['latitude', 'longitude', 'interest_level']]
a = df.pivot_table(index='latitude', 
                   columns='longitude', 
                   values='interest_level', 
                   aggfunc='mean')

groupby,聚合函数和^{}

^{pr2}$

样品:

df = pd.DataFrame({'latitude':[53,54,55,55],
                    'longitude':[10,11,12,12],
                    'interest_level':[1,5,2,6],
                    'another_col':[4,7,4,2]})
print (df)
   another_col  interest_level  latitude  longitude
0            4               1        53         10
1            7               5        54         11
2            4               2        55         12 <-duplicates for 55,12
3            2               6        55         12 <-duplicates for 55,12

a = df.pivot_table(index='latitude', 
                   columns='longitude', 
                   values='interest_level', 
                   aggfunc='mean')
print (a)
longitude   10   11   12
latitude                
53         1.0  NaN  NaN
54         NaN  5.0  NaN
55         NaN  NaN  4.0 <- (2+6)/2 = 4

最后:

ax = sns.heatmap(a)

相关问题 更多 >