1.take函数,根据索引值来生成相应的Series
values = Series([0,1,0,0]*2)
dim = Series(['A','B'])
demo = dim.take(values)
print(demo)#将values中值作为索引,然后根据其来寻找dim中的值
0 A
1 B
0 A
0 A
0 A
1 B
0 A
0 A
dtype: object
2.pandas拥有特殊的Categorical类型,用于承载基于整数的类别展示或编码的数据。
1.astype:转换数据的类型
print(demo.astype('category'))
0 A
1 B
0 A
0 A
0 A
1 B
0 A
0 A
dtype: category
Categories (2, object): [A, B]
2.Categorical对象拥有categories和codes属性:
print(demo.astype('category').values.categories)
Index(['A', 'B'], dtype='object')
print(demo.astype('category').values.codes)
[0 1 0 0 0 1 0 0]
3.利用Categorical直接生成
my_categories = pd.Categorical(['A','B','A','A'])
print(my_categories)
[A, B, A, A]
Categories (2, object): [A, B]
4.利用as_ordered()进行排序
print(my_categories.as_ordered())
[A, B, A, A]
Categories (2, object): [A < B]
5.通过.codes来访问代码,.categories来访问类别
print(my_categories.categories)
[0 1 0 0]
print(my_categories.categories)
Index(['A', 'B'], dtype='object')
6.通过set_categories方法来改变类别
demo=my_categories.set_categories(['A','B','C'])
print(demo)
[A, B, A, A]
Categories (3, object): [A, B, C]
print(demo.value_counts())
A 3
B 1
C 0
dtype: int64
3.高阶GroupBy应用:apply可以用于执行转换操作,内建方法transform也可以进行