如何使用标称值在熊猫中绘制直方图?

Tim*_*art 19 histogram pandas

鉴于:

ser = Series(['one', 'two', 'three', 'two', 'two'])
Run Code Online (Sandbox Code Playgroud)

如何绘制这些值的基本直方图?

这是我想在matplotlib中看到的ASCII版本:

     X
 X   X   X
-------------
one two three
Run Code Online (Sandbox Code Playgroud)

我厌倦了看到:

TypeError: cannot concatenate 'str' and 'float' objects
Run Code Online (Sandbox Code Playgroud)

And*_*den 42

你可以使用这个value_counts方法:

In [10]: ser.value_counts()
Out[10]: 
two      3
one      1
three    1
Run Code Online (Sandbox Code Playgroud)

然后将其绘制为条形图:

ser.value_counts().plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)

编辑:我注意到这没有保持所需的顺序.如果您有一个列表/系列用于此订购(在这种情况下ser[:3]可以),您可以reindex在绘图之前:

In [12]: ser.value_counts().reindex(ser[:3])
Out[12]: 
one      1
two      3
three    1
Run Code Online (Sandbox Code Playgroud)

  • 这正是我想要的.非常感谢你! (3认同)
  • 另一种方法是使用[seaborn](https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.countplot.html)`countplot`. (2认同)