首页 > 解决方案 > Seaborn 有间隙的热图

问题描述

我正在使用来自 kaggle 的数据集并尝试对其进行一些数据分析。

首先,我计算了每组品牌和车辆类型的平均价格(这是我的平均代码),然后,我根据这个平均值绘制了热图(热图代码)(热图图)。但是,注意到在数据集中,一些品牌没有所有车辆类型,例如,alfa_romeo 没有显示“巴士”类型。这成为一个问题,因为这种缺失在热图中显示为空白。

我该如何克服这种情况,例如,将零值放在有差距的地方?

标签: pythonseabornheatmap

解决方案


尝试将参数添加fill_value = 0到您df.pivotHeat map code. 这应该替换NULL0并防止差距出现在热图中。

编辑:我的解决方案出错,因为pandas.DataFrame.pivot没有fill_value. 一个更好的选择是pandas.pivot_table,它或多或少等同于pandas.pivot但具有更大的灵活性。见这里:https ://pandas.pydata.org/pandas-docs/stable/generated/pandas.pivot_table.html

以下是你的行应该如何重写:

import pandas as pd
df2_pivot = pd.pivot_table(data = df2, 
                           index = 'brand', 
                           columns = 'vehicleType', 
                           values = 'avgPrice', 
                           fill_value = 0)

或者,您也可以运行:

df2_pivot = df2.pivot(index = 'brand', 
                      columns = 'vehicleType', 
                      values = 'avgPrice').fillna(0)

推荐阅读