case1——对有限类型的字段按指定要求排序:
#学历分布
xueli_ts=df.pivot_table(index='学历',values='教师id',aggfunc='count',margins=True,margins_name='总计')
xueli_ts['占比']=np.round(xueli_ts['教师id']/xueli_ts.loc['总计','教师id'],2)
xueli_ts.reset_index(inplace=True)xueli_ts['学历']=xueli_ts['学历'].astype('category')list_xueli=['未知','专科','本科','硕士','博士','总计']
xueli_ts['学历'].cat.reorder_categories(list_xueli,inplace=True)
xueli_ts.sort_values('学历',inplace=True)
xueli_ts.set_index('学历',inplace=True)
print(xueli_ts)
输出结果为:
case2——若指定的list所包含元素比Dataframe中需要排序的列的元素多,怎么办?
可以使用 set_categories()方法来实现。新的list可以比dataframe中元素多。
case3——若指定的list所包含元素比Dataframe中需要排序的列的元素少,怎么办?
注意下面的list中没有元素“b”
根据指定的list所包含元素比Dataframe中需要排序的列的元素的多或少,可以分为三种情况: