categorical
pandas.Categorical(values,categories = None,ordered = None,dtype = None )
values:需要分类的值,如果给出了categories,则会将不在categories的值替换为NaN
categories:根据categories进行分类,如果没有给出,则将values中每一个不同的值确定为一个类别。
ordered:默认为False,如果为True,则启用排序。
dtype:若使用此函数生成一个实例,返回一个CategoricalDtype类型
import pandas as pd
s1=['a','a','b','d','c']
s2 = [1,4,4,3,7]
ss0=pd.Categorical(s1,categories=['d','b','c'])
ss1 = pd.Categorical(s1)
ss2 =pd.Categorical(s2)
print(ss0)
print(ss1)
print(ss2)
print('-------------------')
# 可以使用code,将分出的类别打印出来,并使用数字编码
print(ss0.codes)
print(ss1.codes)
print(ss2.codes)
[NaN, NaN, 'b', 'd', 'c']
Categories (3, object): ['d', 'b', 'c']
['a', 'a', 'b', 'd', 'c']
Categories (4, object): ['a', 'b', 'c', 'd']
[1, 4, 4, 3, 7]
Categories (4, int64): [1, 3, 4, 7]
-------------------
[-1 -1 1 0 2]
[0 0 1 3 2]
[0 2 2 1 3]
import pandas as pd
s1=['a','a','b','d','c']
s2 = [1,4,4,3,7]
ss0=pd.Categorical(s1,categories=['d','b','c'])
ss1 = pd.Categorical(s1)
ss2 =pd.Categorical(s2)
print(ss2)
print(ss2.codes)
print('-------------------')
ss2 =pd.Categorical(s2,ordered=True,categories=[4,3,7,1])
print(ss2)
print(ss2.min())
print(ss2.codes)
ss2.categories
[1, 4, 4, 3, 7]
Categories (4, int64): [4, 3, 7, 1]
[3 0 0 1 2]
-------------------
[1, 4, 4, 3, 7]
Categories (4, int64): [4 < 3 < 7 < 1]
4
[3 0 0 1 2]
通过启用排序,则可以使用min来获取最小索引的数据。