pandas中有一种分类数据类型category,分类数据类型具有以下优点:
(1)采用这种方式存储数据更加节约内存,提高速度,尤其是数据集中包含很多重复的字符串得时候
(2)当一劣质存在一定的顺序(比如李克特量表)时,应该转换成分类数据
(3)有些python库可以处理分类数据(比如拟合统计模型)
使用astype将数据转换成catecory数据类型可参考astype转换数据类型_我就是一个小怪兽的博客-CSDN博客
以下给出的参考表中给出了可以再分类series上执行得操作,表格下面是该表格中属性方法举例
属性或方法 | 说明 |
Series.cat.categories | 类别 |
Series.cat.ordered | 类别是否有顺序 |
Series.cat.codes | 返回类别的证书代码 |
Series.cat.rename_categories() | 重命名类别 |
Series.cat.reorder_categories() | 对类别重新排序 |
Series.cat.add_categories() | 添加新类别 |
Series.cat.remove_categories() | 删除类别 |
Series.cat.remove_unused_categories() | 删除未使用的类别 |
Series.cat.set_categories() | 设置新类别 |
Series.cat.as_order() | 对类别排序 |
Series.cat.as_unordered() | 是类别无序 |
import pandas as pd
import seaborn as sns
tips=sns.load_dataset('tips')
t=tips.head(10)
t.loc[[1,4,7],'total_bill']='missing'
print(t.dtypes)
print(t['sex'].cat.categories)
输出结果如下:
total_bill object
tip float64
sex category
smoker category
day category
time category
size int64
dtype: object
------------------------------------------------
Index(['Male', 'Female'], dtype='object')
[Finished in 1.7s]