数据的分类,在数据分析里很常见,学到这里,感觉是把excel里函数和编程融合在一起了,很方便。
一、分类的创建、分类类别的更改
1、可以用series创建,用Dataframe 和内置的Categorical来创建,或者利用cut函数创建(默认使用区间类型为标签)
pd.Series(["a", "b", "c", "a"], dtype="category")
temp_df = pd.DataFrame({'A':pd.Series(["a", "b", "c", "a"], dtype="category"),'B':list('abcd')})
temp_df.dtypes
cat = pd.Categorical(["a", "b", "c", "a"], categories=['a','b','c'])
pd.Series(cat)
二、对分类数据的排序
Pandas里有个概念:序。序的建立:
(1)一般来说会将一个序列转为有序变量,可以利用as_ordered方法
In [16]:
s = pd.Series(["a", "d", "c", "a"]).astype('category').cat.as_ordered()
s
退化为无序变量,只需要使用as_unordered
s.cat.as_unordered()
(2)利用set_categories方法中的order参数
pd.Series(["a", "d", "c", "a"]).astype('category').cat.set_categories(['a','c','d'],ordered=True)
(3)利用reorder_categories方法【新设置的分类必须与原分类为同一集合】
三、分类数据的比较(例子再写)
1. 与标量或等长序列的比较
(a)标量比较
(b)等长序列比较
2. 与另一分类变量的比较
(a)等式判别(包含等号和不等号)【两个分类变量的等式判别需要满足分类完全相同】
(b)不等式判别(包含>=,<=,<,>)两个分类变量的不等式判别需要满足两个条件:① 分类完全相同 ② 排序完全相同