You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于pivot_table绘制seaborn热力图报错的问题排查

问题原因与解决方法

错误的核心是你生成的pivot_table结果数据类型为object,而seaborn的heatmap要求输入数值类型(float/int)的数据。

解决步骤:

  1. 验证数据类型
    先确认pivot_table的结果 dtype:
print(result_1.dtypes)

如果输出为object,说明数据因原数据中的缺失值或类型兼容问题被自动转为了object类型。

  1. 强制转换数据类型并绘图
    将数据转为float类型后再绘制热力图:
import seaborn as sns
import matplotlib.pyplot as plt

# 转换为float类型
result_1 = result_1.astype(float)
# 绘制热力图
sns.heatmap(result_1, annot=True, cmap="PiYG_r")
plt.show()

也可以直接在绘图时完成转换:

sns.heatmap(result_1.astype(float), annot=True, cmap="PiYG_r")
plt.show()
  1. 从源头避免类型问题(可选)
    生成pivot_table时明确指定聚合函数,并用数值填充缺失值:
result_1 = data.pivot_table(
    columns='HomePlanet', 
    index='CryoSleep', 
    values='Transported',
    aggfunc='mean',
    fill_value=0.0  # 用0填充缺失值,防止NaN引发类型异常
)

之后直接调用heatmap即可正常绘制。

内容的提问来源于stack exchange,提问作者stukituk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 03:55:16