在做数据分析的时候,有时候分类变量值默认的排序不是我们想要的,需要调整显示顺序,pandas可以通过pd.Categorical来设置分类变量的显示顺序。
例如,对于数据分析教程常用的diamonds数据集,color等级是从J, I, H, G, F, E, D逐渐上升,如果要考察color等级和价格的关系,自然是希望color按照J, I, H, G, F, E, D顺序显示,但数据默认会按照字母(变量值)在数据中出现的顺序或者一般排序的顺序。
例如:直接绘图,color的显示顺序为变量值在数据中出现的顺序
import seaborn as sns
sns.barplot(x = "color", y = "price",data = diamonds)
现在通过pd.Categorical()函数重新设置color列的显示顺序
color_cats = ['J', 'I', 'H', 'G', 'F', 'E', 'D']
diamonds['color'] = pd.Categorical(diamonds['color'], categories=color_cats, ordered=True)
设置完毕后,显示顺序就按照等级顺序了。