熊猫情节栏订购类别
我有一个包含分类变量的数据集,该变量包含三个唯一值:“低”,“中”和“高”:
df.CatVar.value_counts()
Out[93]:
Medium 35832
Low 25311
High 12527
Name: CatVar, dtype: int64
我试图将唯一值的数量绘制为条形图。但是,以下代码按[[Medium],“ Low”,“ High”]的顺序给出了条形图
df.CatVar.value_counts().plot(kind="bar")
如何更改图中条形的顺序?
-
有2种可能的解决方案-更改
index
绘图之前的顺序-通过reindex
或loc
:df.CatVar.value_counts().reindex(["Low", "Medium", "High"]).plot(kind="bar") df.CatVar.value_counts().loc[["Low", "Medium", "High"]].plot(kind="bar")
或使用
ordered categorical
,因此在value_counts
按categories
参数获得命令后:df.CatVar = pd.Categorical(df.CatVar, categories=["Low", "Medium", "High"], ordered=True) df.CatVar.value_counts(sort=False).plot(kind="bar")
样品 :
df = pd.DataFrame({'CatVar':['Low','Medium','Low','Low','Medium','High']}) print (df) CatVar 0 Low 1 Medium 2 Low 3 Low 4 Medium 5 High df.CatVar.value_counts().reindex(["Low", "Medium", "High"]).plot(kind="bar")