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

为什么pandas DataFrame生成的相关矩阵列数少于原数据集列数

核心原因

  • pandas.DataFrame.corr() 方法默认仅对数值类型的列计算相关系数,所有非数值类型(包括object类字符串列、未编码的分类列等)会被自动排除,不会纳入计算。你原始DataFrame的80列中共有43列为非数值类型,因此最终只生成了37×37的相关矩阵。
  • 你打印的缺失值统计仅能证明数据集无空值,和列是否符合相关系数的计算要求无关,即便无缺失值,非数值列也不会参与计算。

验证方式

执行以下代码查看数据集的列类型分布,即可确认数值列总数:

print(all_data.dtypes.value_counts())

输出结果中int、float等数值类型的列数总和应当为37,剩余列均为非数值类型。

解决方案

如果需要将所有列都纳入相关系数计算,需要先对非数值列做编码转换:

  • 无序分类变量可使用独热编码pd.get_dummies()处理
  • 有序分类变量可使用标签编码转换为数值格式
    所有列转换为数值类型后再调用corr()方法,即可得到80×80的相关矩阵。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:45:03