pandas 学习笔记12 分类数据

本文介绍了Pandas库中如何处理和操作分类数据,包括如何创建、修改和查看分类数据的类别,以及如何进行有序和无序分类数据的转换。通过示例展示了如何使用`pd.Categorical`和`astype('category')`进行数据类型转换,以及如何利用`cat`属性进行类别管理,如重命名、添加和删除类别。此外,还探讨了分类数据的有序性和无序性设置以及重新排序类别。
摘要由CSDN通过智能技术生成

1 分类数据

# 类似.str.<method> .cat.<method>
s = pd.Series(list('xyzx'),dtype='category')#指定数据类型 Categories (3, object): ['x', 'y', 'z']
df = pd.DataFrame({'A':list('xyzx'),'B':list('aabc')},dtype='category')
df.dtypes #查看数据类型
df.B #查看指定列的类型
pd.Series(pd.cut(range(1,10,2),[0,4,6,10])) #生成分箱序列 自动创建分类数据类型
# pd.Categorical() 类似R语言和S-plus中类似的形式来表示分类数据类型
pd.Categorical(list('xyzx'),categories=['y','z','x'],ordered=True) #orderd 默认为Fales,顺序为类别的先后循序,而非值的顺序
# CategoricalDtype 是pd的分类数据对象,可以传入参数
# categories :没有缺失值的不重复序列
# ordered :顺序的空制,默认是有顺序的
from pandas.api.types import CategoricalDtype
c=CategoricalDtype(['a','b','c']) #定义对象
pd.Series(list('abcabc'),dtype=c) #类别指定CategoricalDtype对象
df = pd.read_excel(r'D:\pythonproject\pythonVsc\pandas\data\team.xlsx')
df.team.astype('category') #转换数据类型
c = CategoricalDtype(list('ABCDE')) #定义对象
df.team.astype(c) #应用到类型转换

2 分类的操作

#分类的操作
s = pd.Series(list('abca'),dtype='category')
s.cat.categories=['x','y','z'] #修改分类
s.cat.rename_categories(list('hij')) #修改分类
s.cat.rename_categories({'a':'x','b':'y','c':'z'}) #使用字典修改分类
s.cat.set_categories(['b','c','a']) #设置分类也可修改分类
s.cat.add_categories(['t'])#追加新分类
s.cat.remove_categories(['y']) #删除分类,删除的值使用np.nan代替
s =pd.Series(pd.Categorical(['a','b','a'],categories=['a','b','c','d']))
s.cat.remove_unused_categories() #删除未使用的分类
s = pd.Series(list('abca'),dtype='category')
s.cat.categories #查看分类
s.cat.ordered #是否有序,新生成的分类数据不会自动排序,必须显示传入ordered = True来指示分类
s = pd.Series(pd.Categorical(list('abca'),categories=list('cba')))
s.cat.categories
s.cat.ordered
s.cat.as_ordered() #设置为有序
s.cat.as_unordered() #设置为无序
s.cat.reorder_categories(list('bac'),ordered=True) #重新排序,传入ordered=True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值