📜  pandas 将多列转换为分类 - Python (1)

📅  最后修改于: 2023-12-03 15:03:29.702000             🧑  作者: Mango

Pandas 将多列转换为分类 - Python

Pandas 是一个用于数据操作和分析的 Python 包。在数据分析中,一些列可以被看作是分类。例如,一个名为 "性别" 的列可能只有两个值,"男" 和 "女"。在 Pandas 中,我们可以使用 astype('category') 方法将这些列转换为分类。

使用方法

假设我们有以下数据集:

import pandas as pd

data = {"姓名": ["张三", "李四", "王五", "赵六"],
        "性别": ["男", "女", "男", "女"],
        "年龄": [25, 30, 28, 22],
        "职业": ["工人", "教师", "工程师", "销售员"]}

df = pd.DataFrame(data)

| | 姓名 | 性别 | 年龄 | 职业 | |---:|:------|:------|:------|:-------| | 0 | 张三 | 男 | 25 | 工人 | | 1 | 李四 | 女 | 30 | 教师 | | 2 | 王五 | 男 | 28 | 工程师 | | 3 | 赵六 | 女 | 22 | 销售员 |

我们可以使用 astype 方法将 "性别" 和 "职业" 列转换为分类:

df['性别'] = df['性别'].astype('category')
df['职业'] = df['职业'].astype('category')

现在这两列被转换为分类。我们可以检查它们的数据类型:

print(df.dtypes)

# 输出:
# 姓名      object
# 性别    category
# 年龄       int64
# 职业    category
# dtype: object
注意事项
  • 转换为分类的列可以帮助我们更有效地进行某些数据操作,例如绘制分类图表。
  • 每个分类只被存储一次,在 Pandas 中,它们是以一种类似于字典的方式存储的。
  • 如果分类列中只有少量不同的值,则转换为分类可能不会带来很大的好处,反而会增加内存消耗。