pandas学习:第十天

本文详细介绍了Pandas中的分类数据处理,包括cat对象的属性与增删改操作,有序分类的创建和排序比较,以及如何利用cut和qcut构造区间类别。通过对这些概念和方法的理解,读者可以更有效地管理和分析分类数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


分类数据

一、cat对象

属性

category类型,使用户能够主力分类类型的变量,将普通序列转化为分类变量用astype方法。
对一个分类类型的Series中的cat对象类似于上一章的str对象
有两个组成部分,一个是index,另一个为是否有序
每一个序列会被赋予唯一的整数编号,取决于cat.categories中的顺序,通过cat.codes来访问

增删改

增加:add_categories
删除:remove_categories,删除原来序列中存在的类后,此类再次查询时为缺失
设置新序列:set_categories设置新的序列,若序列中没有此类则为缺失
删除未出现在序列中的类别: remove_unused_categories
改序列名:rename_categories

二、有序分类

序的建立

有序类别:as_ordered
无序类别:as_unordered
指定序列顺序:reorder_categories

排序与比较

将序列变量进行排序后,可以通过sort_index, sort_values进行排序
比较有两种:
一是:==,!=进行标量或长度的对比
二是:<,<=,>,>=进行原序列排序的对比
返回值为布尔值

三、区间类别

利用cut和qcut进行区间构造

最重要的参数是 bins ,如果传入整数 n ,则代表把整个传入数组的按照最大和最小值等间距地分为 n 段
bins 的另一个常见用法是指定区间分割点的列表(使用 np.infty 可以表示无穷大)
labelsretbins ,分别代表了区间的名字和是否返回分割点(默认不返回)
qcut 和 cut 几乎没有差别,只是把 bins 参数变成的 q 参数

一般区间的构造

备三个要素,即左端点、右端点和端点的开闭状态,其中开闭状态可以指定 right, left, both, neither 中的一类

pd.Interval(0, 1, 'right')

其属性包含了 mid, length, right, left, closed ,分别表示中点、长度、右端点、左端点和开闭状态
pd.IntervalIndex 对象有四类方法生成,分别是 from_breaks, from_arrays, from_tuples, interval_range
from_breaks 的功能类似于 cut 或 qcut 函数,只不过后两个是通过计算得到的分割点,而前者是直接传入自定义的分割点

pd.IntervalIndex.from_breaks([1,3,6,10], closed='both')

from_arrays 是分别传入左端点和右端点的列表,适用于有交集并且知道起点和终点的情况

pd.IntervalIndex.from_arrays(left = [1,3,6,10],
                             right = [5,4,9,11], 
                             closed = 'neither')

from_tuples 传入的是起点和终点元组构成的列表

pd.IntervalIndex.from_tuples([(1,5),(3,4),(6,9),(10,11)],
                              closed='neither')

一个等差的区间序列由起点、终点、区间个数和区间长度决定,其中三个量确定的情况下,剩下一个量就确定了, interval_range 中的 start, end, periods, freq 参数就对应了这四个量,从而就能构造出相应的区间

pd.interval_range(start=1,end=5,periods=8)

区间的属性与方法

IntervalIndex 有若干常用属性: left, right, mid, length ,分别表示左右端点、两端点均值和区间长度
contains 和 overlaps ,分别指逐个判断每个区间是否包含某元素,以及是否和一个 pd.Interval 对象有交集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值