且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用seaborn热图

更新时间:2023-01-28 11:43:25

您需要 数据透视表 ,具有一些汇总功能,例如 mean sum ,...:

You need pivot_table with some aggregate function like mean, sum, ...:

#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 ,聚合函数并unstack:

Or groupby, aggregate function and unstack:

a = df.groupby(['latitude','longitude'])['interest_level'].mean().unstack()

示例:

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)