Vig*_*oTW 7 python plot categories pandas
我有一个带有分类变量的数据集,其中包含三个唯一值,"低","中"和"高":
df.CatVar.value_counts()
Out[93]:
Medium 35832
Low 25311
High 12527
Name: CatVar, dtype: int64
Run Code Online (Sandbox Code Playgroud)
我试图绘制唯一值的数量作为条形图.但是,以下代码按顺序给出了条形码["中","低","高"]
df.CatVar.value_counts().plot(kind="bar")
Run Code Online (Sandbox Code Playgroud)
如何更改绘图中条形的顺序?
有2种可能的解决方案-更改index
绘图前的顺序-通过reindex
或loc
:
df.CatVar.value_counts().reindex(["Low", "Medium", "High"]).plot(kind="bar")
Run Code Online (Sandbox Code Playgroud)
df.CatVar.value_counts().loc[["Low", "Medium", "High"]].plot(kind="bar")
Run Code Online (Sandbox Code Playgroud)
或使用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")
Run Code Online (Sandbox Code Playgroud)
样品:
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")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3283 次 |
最近记录: |