`category` 数据类型

174 阅读1分钟

在Pandas中,category 是一种特殊的数据类型,用于处理具有有限数量不同值的数据,即分类数据。使用分类数据类型可以显著提高性能和内存利用率,尤其是在数据有重复值的情况下。

具体来说,category 类型适用于以下情况:

  1. 有限数量的值:数据列中的值是有限且固定的,例如性别(男、女)、月份(1 到 12)、评级(A 到 F)等。

  2. 重复值较多:当数据中包含大量重复值时,使用 category 可以节省内存空间。Pandas会使用一个包含唯一值的数组,并将整数编码与原始值相关联,而不是存储每个值的多个副本。

  3. 顺序性:分类数据可以具有顺序,即具有逻辑上的顺序关系,例如评级(A < B < C)。

使用 category 数据类型可以通过减少存储重复数据来优化内存使用,并且在某些操作(例如排序和群组操作)中,也可以显著提高性能。

下面是如何将一个列转换为 category 类型的示例:

import pandas as pd

# 创建示例数据
data = {
    '分类列': ['A', 'B', 'A', 'A', 'C', 'B', 'C', 'A', 'B']
}

df = pd.DataFrame(data)

# 将 '分类列' 转换为 category 类型
df['分类列'] = df['分类列'].astype('category')

# 查看转换后的数据类型
print(df.dtypes)

输出结果将显示:

分类列    category
dtype: object

在这个示例中,'分类列' 被成功地转换为了 category 类型。