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

在Pandas中,二元(虚拟)变量应使用哪种正确的数据类型?

Pandas二元(虚拟)变量的最优数据类型选择

对于二元虚拟变量的存储,不同Pandas数据类型的适用性差异很大,直接说结论:category是最优选择,其他类型的优缺点如下:

  • int64/float64:能用但不推荐
    这类数值类型可以存储0/1这类标记,但会浪费内存(比如int64占8字节),而且容易让阅读代码的人误以为这些数值有数学运算意义,反而造成语义混淆。

  • object:绝对要避免
    object类型存储的是Python对象引用,内存占用极高,而且Pandas对object列的排序、分组、聚合等操作效率极低,完全不适合用来存二元变量。

  • category:最适合的选择

    1. 内存高效:category会把二元变量的两个唯一值存为映射字典,实际列存储的是整数编码,内存占用比int64还小,数据量越大优势越明显。
    2. 操作快速:Pandas对category类型做了专门优化,分组、筛选等操作的速度远快于object类型,性能不输数值类型。
    3. 语义明确:直接表明这是分类变量,不是数值,避免了不必要的误解。

如果要将列转为category类型,基础用法是:
df['target_column'] = df['target_column'].astype('category')

若转换失败,先排查常见问题:

  • 检查列中是否存在非预期的多值:用print(df['target_column'].unique())确认只有两个二元选项
  • 确认列中没有混合类型的值(比如同时存在字符串和数值),可以先统一类型再转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 13:50:33