Pandas - 数据分类
-
简述
通常是实时的,数据包括重复的文本列。性别、国家和代码等特征总是重复的。这些是分类数据的示例。分类变量只能采用有限且通常固定数量的可能值。除了固定长度外,分类数据可能有顺序但不能进行数值运算。分类是 Pandas 数据类型。分类数据类型在以下情况下很有用 --
仅由几个不同值组成的字符串变量。将这样的字符串变量转换为分类变量将节省一些内存。
-
变量的词法顺序与逻辑顺序不同(“一”、“二”、“三”)。通过转换为分类并指定类别的顺序,排序和最小/最大将使用逻辑顺序而不是词法顺序。
-
作为向其他 python 库的信号,应将此列视为分类变量(例如,使用合适的统计方法或绘图类型)。
-
-
对象创建
可以通过多种方式创建分类对象。下面描述了不同的方式 -类别
通过在 pandas 对象创建中将 dtype 指定为“类别”。它的输出如下 -传递给系列对象的元素数量是四个,但类别只有三个。在输出类别中观察相同。pd.分类的
使用标准的 pandas Categorical 构造函数,我们可以创建一个类别对象。让我们举个例子 -它的输出如下 -让我们再举一个例子 -它的输出如下 -在这里,第二个参数表示类别。因此,类别中不存在的任何值都将被视为NaN.现在,看看下面的例子 -它的输出如下 -从逻辑上讲,顺序意味着,a大于b和b大于c.描述
使用.describe()分类数据上的命令,我们得到类似的输出Series要么DataFrame的type细绳。它的输出如下 -获取类别的属性
obj.cat.categories命令用于获取categories of the object.它的输出如下 -obj.ordered命令用于获取对象的顺序。它的输出如下 -返回的函数false因为我们没有指定任何顺序。重命名类别
重命名类别是通过为series.cat.categoriesseries.cat.categories 属性。它的输出如下 -初始类别[a,b,c]由更新s.cat.categories对象的属性。添加新类别
使用 Categorical.add.categories() 方法,可以附加新的类别。它的输出如下 -删除类别
使用Categorical.remove_categories()方法,可以删除不需要的类别。它的输出如下 -分类数据的比较
在三种情况下可以将分类数据与其他对象进行比较 --
将相等性(== 和 !=)与与分类数据长度相同的类似列表的对象(列表、系列、数组...)进行比较。
-
分类数据与另一个分类系列的所有比较(==、!=、>、>=、< 和 <=),当ordered==True 并且类别相同时。
-
分类数据与标量的所有比较。
看看下面的例子 -它的输出如下 - -