章节导读

分类数据(Categorical)是 pandas 中一种高效的扩展类型,专用于存储有限的、可重复的类别值(如“性别”“城市”“等级”)。它底层使用整数编码,既节省内存,又能保留类别语义与顺序。

本章包含:


为什么使用分类数据

特性说明
内存高效底层用整数编码,重复值多的列可节省大量内存
保留语义类别值(categories)有明确的取值范围
支持顺序可设置为有序类别,支持比较操作
统计友好分组、聚合、透视、频次统计更自然
机器学习可轻松转为哑变量或标签编码

与 object 类型对比

维度objectcategory
存储每个值都是 Python 对象整数编码 + 类别表
内存高低(重复多时明显)
比较按字符串比较可按类别顺序比较
排序按字典序按自定义类别顺序
统计频次需 value_counts直接支持 category 方法

典型应用场景

  • 有限选项的文本列:性别、国家、颜色、评级
  • 数值分箱结果:cut / qcut 产生的区间
  • 数据仓库维度表字段

本章小结

  • 分类数据是 pandas 的高效扩展类型,适合低基数重复数据
  • 创建方式多样:pd.Categorical、CategoricalDtype、astype、cut/qcut
  • 核心属性:categories、ordered、codes
  • 操作丰富:重命名、增删、排序、重编码、缺失值处理
  • 统计分析:分组、透视、交叉表、哑变量均有优势
  • 最佳实践:注意合并退化、空组、填充限制,提前统一类别