↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过
Datawhale干货
作者:耿远昊,Datawhale成员,华东师范大学
分类数据(categorical data)是按照现象的某种属性对其进行分类或分组而得到的反映事物类型的数据,又称定类数据。直白来说,就是取值为有限的,或者说是固定数量的可能值。例如:性别、血型等。
今天,我们来学习下,Pandas如何处理分类数据。主要围绕以下几个方面展开:
本文目录
1. Category的创建及其性质
1.1. 分类变量的创建
1.2. 分类变量的结构
1.3. 类别的修改
2. 分类变量的排序
2.1. 序的建立
2.2. 排序
3. 分类变量的比较操作
3.1. 与标量或等长序列的比较
3.2. 与另一分类变量的比较
4. 问题及练习
4.1. 问题
4.2. 练习
首先,读入数据:
import pandas as pd
import numpy as np
df = pd.read_csv('data/table.csv')
df.head()
一、category的创建及其性质
1.1. 分类变量的创建
(a)用Series创建
pd.Series(["a", "b", "c", "a"], dtype="category")
(b)对DataFrame指定类型创建
temp_df = pd.DataFrame({'A':pd.Series(["a", "b", "c", "a"], dtype="category"),'B':list('abcd')})
temp_df.dtypes
(c)利用内置Categorical类型创建
cat = pd.Categorical(["a", "b", "c", "a"], categories=['a','b','c'])
pd.Series(cat)
(d)利用cut函数创建,默认使用区间类型为标签
pd.cut(np.random.randint(0,60,5), [0,10,30,60])
可指定字符为标签
pd.cut(np.random.randint(0,60,5), [0,10,30,60], right=False, labels=['0-10','10-30','30-60'])
1.2. 分类变量的结构
一个分类变量包括三个部分,元素值(values)、分类类别(categories)、是否有序(order)。从上面可以看出,使用cut函数创建的分类变量默认为有序分类变量。下面介绍如何获取或修改这些属性。
(a)describe方法
该方法描述了一个分类序列的情况,包括非缺失值个数、元素值类别数(不是分类类别数)、最多次出现的元素及其频数。
s = pd.Series(pd.Categorical(["a", &