当前位置: 首页 > news >正文

【Pandas】pandas Series cat

# Pandas2.2 Series

## Accessors

|方法|描述|

|-|:-------|

|Series.str|对 `Series` 中的字符串元素进行矢量化字符串操作|

|Series.cat|用于处理分类数据(Categorical Data)的属性|

### pandas.Series.cat

`pandas.Series.cat` 是用于处理分类数据(Categorical Data)的属性。分类数据是一种数据类型,它将数据限制在一组有限的可能值(类别)中。`pandas.Series.cat` 提供了一系列方法来操作和管理这些分类数据。

#### 常用方法

以下是一些常用的 `pandas.Series.cat` 方法及其示例:

1. **`categories`**: 获取或设置分类的类别。

2. **`codes`**: 获取或设置分类的编码。

3. **`add_categories()`**: 添加新的类别。

4. **`remove_categories()`**: 移除指定的类别。

5. **`rename_categories()`**: 重命名类别。

6. **`reorder_categories()`**: 重新排序类别。

7. **`set_categories()`**: 设置新的类别。

8. **`as_ordered()` 和 `as_unordered()`**: 设置分类为有序或无序。

9. **`remove_unused_categories()`**: 移除未使用的类别。

#### 示例

假设我们有一个包含分类数据的 `Series`:

```python

import pandas as pd

# 创建一个分类 Series

data = pd.Series(['A', 'B', 'A', 'C', 'B', 'A'], dtype='category')

print(data)

```

输出:

```

0    A

1    B

2    A

3    C

4    B

5    A

dtype: category

Categories (3, object): ['A', 'B', 'C']

```

##### 1. `categories`

```python

# 获取类别

categories = data.cat.categories

print(categories)

```

输出:

```

Index(['A', 'B', 'C'], dtype='object')

```

##### 2. `codes`

```python

# 获取编码

codes = data.cat.codes

print(codes)

```

输出:

```

0    0

1    1

2    0

3    2

4    1

5    0

dtype: int8

```

##### 3. `add_categories()`

```python

# 添加新的类别

data = data.cat.add_categories(['D'])

print(data.cat.categories)

```

输出:

```

Index(['A', 'B', 'C', 'D'], dtype='object')

```

##### 4. `remove_categories()`

```python

# 移除指定的类别

data = data.cat.remove_categories(['D'])

print(data.cat.categories)

```

输出:

```

Index(['A', 'B', 'C'], dtype='object')

```

##### 5. `rename_categories()`

```python

# 重命名类别

data = data.cat.rename_categories(['X', 'Y', 'Z'])

print(data)

```

输出:

```

0    X

1    Y

2    X

3    Z

4    Y

5    X

dtype: category

Categories (3, object): ['Z', 'X', 'Y']

```

##### 6. `reorder_categories()`

```python

# 重新排序类别

data = data.cat.reorder_categories(['Z', 'X', 'Y'])

print(data)

```

输出:

```

0    X

1    Y

2    X

3    Z

4    Y

5    X

dtype: category

Categories (3, object): ['Z', 'X', 'Y']

```

##### 7. `set_categories()`

```python

# 设置新的类别

data = data.cat.set_categories(['A', 'B', 'C'])

print(data)

```

输出:

```

0    NaN

1    NaN

2    NaN

3    NaN

4    NaN

5    NaN

dtype: category

Categories (3, object): ['A', 'B', 'C']

```

##### 8. `as_ordered()` 和 `as_unordered()`

```python

# 设置分类为有序

data = data.cat.as_ordered()

print(data)

# 设置分类为无序

data = data.cat.as_unordered()

print(data)

```

输出:

```

0    NaN

1    NaN

2    NaN

3    NaN

4    NaN

5    NaN

dtype: category

Categories (3, object): ['A' < 'B' < 'C']

0    NaN

1    NaN

2    NaN

3    NaN

4    NaN

5    NaN

dtype: category

Categories (3, object): ['A', 'B', 'C']

```

##### 9. `remove_unused_categories()`

```python

# 移除未使用的类别

data = data.cat.remove_unused_categories()

print(data.cat.categories)

```

输出:

```

Index([], dtype='object')

```

#### 总结

`pandas.Series.cat` 提供了一系列方法来管理和操作分类数据。通过这些方法,你可以轻松地对分类数据进行各种操作,如添加、移除、重命名和重新排序类别。希望这些示例能帮助你更好地理解和使用 `pandas.Series.cat`。

相关文章:

  • 【计算机网络】浏览器组成、工作原理、页面渲染流程...
  • 国内首款载重1吨级无人运输机TP1000首飞成功 2026年投入应急救援
  • CAN总线的CC帧和FD帧之间如何仲裁
  • 2025-03-17 NO.1 Quest3 开发环境配置教程
  • 初阶数据结构习题【16】(5二叉树)——965. 单值二叉树
  • langchain如何并行调用运行接口
  • 代码随想录算法训练营第六十五天| 图论10
  • 《Android启动侦探团:追踪Launcher启动的“最后一公里”》
  • 设计模式之抽象工厂模式
  • element plus组件Carousel组件3个卡片平铺样式改造
  • docker nginx
  • A - 整数的简单问题/A - A Simple Problem with Integers
  • 《算法笔记》8.2小节——搜索专题->广度优先搜索(BFS)问题 E: 【宽搜入门】巧妙取量
  • 基于 Prometheus + Grafana 监控微服务和数据库
  • 职业教育五金建设改革解析
  • C# 一文读懂委托与事件
  • Web Component 教程(二):如何有效管理和使用自定义属性
  • ✎ 一次有趣的经历
  • Cross-Silo Prototypical Calibration for Federated Learning with Non-IID Data
  • 【操作系统安全】任务6:Linux 系统文件与文件系统安全 学习指南
  • 陈芋汐世界杯总决赛卫冕夺冠,全红婵无缘三大赛“全满贯”
  • 苹果第二财季营收增长5%,受关税政策影响预计下一财季新增9亿美元成本
  • “译通天下·言立寰宇”:华东师大翻译家的精神传承
  • 国家医保局副局长颜清辉调任人社部副部长
  • 万科:一季度营收近380亿元,销售回款率超100%
  • 中国银行副行长刘进任该行党委副书记