Python新手求助:sns.heatmap执行报错的原因及解决方法
解决Seaborn Heatmap报错的问题
第一个必改错误:布尔值大小写问题
Python里布尔值必须大写开头,你写的annot=true中的小写true会被判定为未定义变量,触发NameError。把这一行修改为:sns.heatmap(appl_data[irrev+["TARGET"]].corr(), cmap="Reds", annot=True)额外排查要点
- 确认
irrev变量已提前正确定义,且其中的列名全部存在于appl_data数据框内,否则会出现找不到列的KeyError。 - 保证
appl_data[irrev+["TARGET"]]中的所有列都是数值类型(整数、浮点数均可),因为corr()方法只能计算数值列的相关系数,非数值列会导致计算失败。
- 确认
修改后的完整代码示例:
import matplotlib.pyplot as plt import seaborn as sns # 示例:假设irrev是包含目标列名的列表,需根据实际情况定义 irrev = ["EXT_SOURCE_3", "EXT_SOURCE_2"] plt.figure(figsize= [10,7]) sns.heatmap(appl_data[irrev+["TARGET"]].corr(), cmap="Reds", annot=True) plt.title("Correlation between EXT_SOURCE_3, EXT_SOURCE_2, TARGET", fontdict={"fontsize":20}, pad=25) plt.show()
内容的提问来源于stack exchange,提问作者Saif Shariff
相关产品推荐
相关产品推荐

