sort_index 函数的排序原理
sort_index函数我们都知道,它能对DataFrame数据针对索引进行排列(不管是 行还是 列)。那在对索引进行排序的过程中,它的原理是怎样的?我们通过下面的几组测试来总结一下:
import pandas as pd
obj = pd.Series(range(4), index=['ddddd', 'eaaaa', 'ff', 'ccccccccc'])
>>> obj
ddddd 0
eaaaa 1
ff 2
ccccccccc 3
dtype: int32
>>> obj.sort_index()
ccccccccc 3
ddddd 0
eaaaa 1
ff 2
dtype: int32
从结果中我们能很容易的总结出,当索引是字符串类型的索引时,排序规则会按照英文去排列,以索引字符串的首字母开始进行排列。如果索引字符串的首字母相等,那么就根据第二个字母的字母表顺序进行排列,以此类推。如下面的代码结果:
obj = pd.Series(range(4), index=['daddd', 'daaaa', 'ff', 'daccccccc'])
>>> obj.sort_index()
daaaa 1
daccccccc 3
daddd 0
ff 2
dtype: int32
如果索引是数字类型,那么就更容易理解,就是按照数字的大小顺序排列即可。如果索引中既有数字又有字符串,那么调用sort_index函数会错,一定要同一种类型才可以。