熊猫情节栏订购类别

发布于 2021-01-29 16:24:42

我有一个包含分类变量的数据集,该变量包含三个唯一值:“低”,“中”和“高”:

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")

如何更改图中条形的顺序?

关注者
0
被浏览
41
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    有2种可能的解决方案-更改index绘图之前的顺序-通过reindexloc

    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_countscategories参数获得命令后:

    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")
    

    图片



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看