Pandas之十数据分类

简介: Pandas中为数据分类的需求提供专门的类型category,可以由多种方式创建,并结合dataframe或Series进行使用。

Pandas中为数据分类的需求提供专门的类型category,可以由多种方式创建,并结合dataframe或Series进行使用。

首先生成样本数据:

df = pd.DataFrame(
    {"id": [1, 2, 3, 4, 5, 6]})
df

1. 创建

category可以从不同方式创建,本文以给样本添加分类列,列名为grade逐一进行说明。

1.1 Series创建

创建一个类型为category的Series,再将其作为样本数据的grade

g = pd.Series(
    ["a", "b", "c", "a","e"], 
    dtype="category")
# 再将该Series作为dataframe中一列
df["grade"]=g

1.2DataFrame创建

创建一个dataframe,其中grade类型为category,然后将两个dataframe进行拼接

df1 = pd.DataFrame({
  "grade":
    ["a","b","c","a","e",np.nan]},
  dtype="category")
df = pd.concat([df,df1],axis=1)
df

1.3 Categorical创建

使用pd.Categorical创建分类,再作为Series放到Dataframe里面。

g = pd.Categorical(
  ["a", "b", "c", "a","e",np.nan],
  categories=["a", "b", "c","e"],
  ordered=False)
df["grade"]=pd.Series(g)

1.4 CategoricalDtype创建

CategoricalDtype是pandas的数据类型对象,指定dtype='category'时,就等同于dtype = CategoricalDtype()。包含以下参数:

  • categories:所有不重复分类值
  • ordered:设定分类排序,默认值为False

创建CategoricalDtype类型c,并将df.grade转为该类型

from pandas.api.types import CategoricalDtype
c = CategoricalDtype(
  ["a", "b", "c","e"])
df["grade"]=pd.Series(
  ["a", "b", "c", "a","e",np.nan])
df.grade = df.grade.astype(c)

2. 使用

2.1 分类的描述性统计

describe可以统计分类数据做描述性统计,返回以下值:

  • count:统计数量
  • unique:统计分类值个数
  • top:出现最多次的值。此处是a。
  • freq:出现最多次值出现的次数。此处是a出现了2次。

2.2 分类CRUD

可以对分类数据进行相应的CRUD操作,逐一进行说明。

2.2.1 增加分类

使用add_categories增加新的分类

df.grade.cat.add_categories(["d"])

2.2.2 设置分类

使用set_categories重新设置分类

df.grade = df.grade.cat.set_categories(["a","b","c","d"])
df.grade

2.2.3 删除分类

使用 remove_categories删除分类, 删除的值将替换为 np.nan

df.grade = df.grade.cat.remove_categories(["b"])
df.grade

目录
相关文章
|
SQL 索引 Python
Pandas之三选择数据
介绍在pandas中筛选数据的几种方法,快速定位某行、某列、具体元素的方法
813 0
Pandas之三选择数据
|
23小时前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
5月前
|
机器学习/深度学习 数据挖掘 Python
机器学习之pandas基础——pandas与概率论的简短碰面
机器学习之pandas基础——pandas与概率论的简短碰面
47 4
|
4月前
|
数据采集 数据挖掘 数据处理
如何用pandas处理数据集?
如何用pandas处理数据集?【7月更文挑战第8天】
50 0
|
4月前
|
数据采集 数据挖掘 大数据
Pandas是Python数据分析的核心库,基于NumPy,提供DataFrame结构处理结构化数据
【7月更文挑战第5天】Pandas是Python数据分析的核心库,基于NumPy,提供DataFrame结构处理结构化数据。它支持缺失值处理(dropna()、fillna())、异常值检测(Z-Score、IQR法)和重复值管理(duplicated()、drop_duplicates())。此外,数据转换包括类型转换(astype())、数据标准化(Min-Max、Z-Score)以及类别编码(get_dummies())。这些功能使得Pandas成为大数据预处理的强大工具。
52 0
|
6月前
|
数据采集 人工智能 数据挖掘
Python数据分析:利用Pandas库处理缺失数据的技巧
在数据分析中,数据的完整性对结果的准确性至关重要。本文将介绍如何利用Python中强大的Pandas库来处理数据中的缺失值,帮助您更好地进行数据清洗和分析。
|
6月前
|
数据可视化 数据挖掘 Linux
第四章 Pandas 统计分析基础
第四章 Pandas 统计分析基础
235 0
|
存储 算法 数据挖掘
Pandas处理时间序列数据的20个关键知识点
Pandas处理时间序列数据的20个关键知识点
339 0
Pandas处理时间序列数据的20个关键知识点
|
数据可视化 Linux 索引
第四章 Pandas 统计分析基础(下)
第四章 Pandas 统计分析基础(下)
832 0
第四章 Pandas 统计分析基础(下)
|
数据挖掘 索引 Python
第四章 Pandas 统计分析基础(上)
第四章 Pandas 统计分析基础
160 0
第四章 Pandas 统计分析基础(上)
下一篇
无影云桌面