19

鉴于:

ser = Series(['one', 'two', 'three', 'two', 'two'])

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

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

     X
 X   X   X
-------------
one two three

我厌倦了看到:

TypeError: cannot concatenate 'str' and 'float' objects
4

1 回答 1

43

您可以使用以下value_counts方法:

In [10]: ser.value_counts()
Out[10]: 
two      3
one      1
three    1

然后将其绘制为条形图

ser.value_counts().plot(kind='bar')

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

In [12]: ser.value_counts().reindex(ser[:3])
Out[12]: 
one      1
two      3
three    1
于 2013-01-10T00:33:02.837 回答