python中category是什么类型_注意:Python代码bug-category数据类型的转换
文章图片
《Python数据可视化之美》已经出售,书籍配套的代码也可以在Github-Easy_Shu上下载。但是最近有读者反映代码运行有bug,今天我修正啦,准确的叫法应该是更新。因为这个bug是因为pandas包更新导致原category数据类型的转换方法失效。但是这个数据类型的转换在很多图表代码中都有使用,极为重要,特此郑重声明,希望读者尤为注意。
文章图片
现在以《Python数据可视化之美》第20页代码为例。一个分类数据不仅包括分类变量本身,还可能包括变量不同的类别(即使它们在数据中不出现)。分类函数pd.Categorical()用下面的选项创建一个分类数据。对于字符型列表,分类数据的类别默认依字母顺序创建:[Fair,Good, Ideal, Premium, Very Good]。
对于已经创建的分类数据或者数据框,可以使用*.astype()函数指定类别选项来覆盖默认排序,从而将分类数据的类别更改为[Good, Fair, Very Good, Ideal, Premium]。其原代码如下:import pandas as pdCut=pd.Series(["Fair","Good","Very Good","Premium","Ideal"])Cut_Facor2=Cut.astype("category",categories=["Good","Fair","Very Good","Ideal","Premium"],ordered=True)
但是现在的运行出错,其bug显示如下,astype()已经不存在这个categories的参数:
文章图片
由于pandas版本(1.0.3)的更新, 现在要想使用astype()来转换类数据的类别,原类别更改方法需要使用pandas.api.types. CategoricalDtype来定义categories,其代码具体如下:import pandas as pdfrom pandas.api.types import CategoricalDtypeCut=pd.Series(["Fair","Good","Very Good","Premium","Ideal"])Cut_Facor2= Cut.astype(CategoricalDtype(categories=["Good","Fair","Very Good","Ideal","Premium"],ordered=True))
我把两段代码放到一起,对比显示如下。读者在书中代码遇到category类型数据的转换,都需要替换成现在的代码形式,方能运行。
文章图片
参考:
[1] https://pandas.pydata.org/pandas-docs/version/0.22.0/categorical.html
[2] https://pandas.pydata.org/pandas-docs/stable/user_guide/categorical.html
欢迎读者来信,再次感谢诸位!
文章图片
如需联系EasyShu团队
请加微信:EasyCharts
微信公众号【EasyShu】博文代码集合地址
https://github.com/Easy-Shu/EasyShu-WeChat数据可视化之美系列书籍
文章图片
Python数据可视化之美-配套源代码下载地址Github
https://github.com/Easy-Shu/Beautiful-Visualization-with-python
R语言数据可视化之美-增强版配套源代码下载地址Github
https://github.com/Easy-Shu/Beautiful-Visualization-with-R
【python中category是什么类型_注意:Python代码bug-category数据类型的转换】
文章图片
推荐阅读
- python京东抢购|python京东抢购 github_GitHub - DevGuan/jd-autobuy: Python爬虫,京东自动登录,在线抢购商品...
- python股票全套系统_GitHub - marsdin/stock: stock,股票系统。使用python进行开发。
- python|python github api_PyGithub: PyGithub 是一个 Python 库,封装了 Github V3 API 的各种操作
- 阿帕网几台大型计算机网络,阿帕网-互联网的鼻祖(中) | 午夜猫
- 云数据中心网络遇到的问题_阿帕云(云计算数据中心面临哪些安全挑战())
- C#|C# 提取Word中插入的多媒体文件(视频、音频)
- 『无为则无心』Python面向对象|『无为则无心』Python面向对象 — 57、类属性和实例属性
- 35岁Android开发者如何突破中年危机()
- 用Python实现石头剪刀布游戏
- SpringBoot中web模版数据渲染展示的案例详解