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

如何解决含非数值列的DataFrame计算相关性报错并绘制热力图

解决Pokemon数据集相关性计算与热力图绘制报错问题

常见报错原因及修复方案

1. 未导入依赖库

你的代码用到了pandas(相关性计算)、matplotlib(画布设置)和seaborn(热力图绘制),缺失导入会直接触发报错。在代码开头添加:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

2. 未正确加载数据集到stats_df变量

代码直接使用stats_df但未定义该变量,需先读取Pokemon CSV文件:

# 加载数据集(确保文件路径正确,若在当前目录直接用文件名)
stats_df = pd.read_csv("Pokemon.csv")

3. 非数值列导致相关性计算失败

corr()仅支持数值型列计算相关性,数据集里的Name、Type 1等文本列会引发错误。需先筛选数值列:

# 只保留整数/浮点类型的列
numeric_df = stats_df.select_dtypes(include=['int64', 'float64'])
corr = numeric_df.corr()

4. 数据存在空值

部分缺失值会干扰相关性计算,可先处理空值:

# 用0填充空值(也可根据需求用均值/中位数填充)
numeric_df = numeric_df.fillna(0)
# 或直接删除含空值的行
numeric_df = numeric_df.dropna()

完整可运行代码示例

整合所有步骤的完整代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 加载数据集
stats_df = pd.read_csv("Pokemon.csv")

# 预处理数据:筛选数值列+填充空值
numeric_df = stats_df.select_dtypes(include=['int64', 'float64']).fillna(0)

# 计算相关性
corr = numeric_df.corr()

# 绘制热力图(添加annot=True可显示相关系数数值)
plt.figure(figsize=(9,8))
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:43:14