使用 Pandas Value_Counts 和 matplotlib
Posted
技术标签:
【中文标题】使用 Pandas Value_Counts 和 matplotlib【英文标题】:Using Pandas Value_Counts and matplotlib 【发布时间】:2016-08-14 05:13:43 【问题描述】:我使用 Pandas 的 value_counts 函数来提供唯一值的计数:
CountStatus = pd.value_counts(df['scstatus'].values, sort=True)
Output:
200 133809
304 7217
404 2176
302 740
500 159
403 4
301 1
dtype: int64
我现在想使用 matplotlib 绘制这些值,即“plt.barh(CountStatus)”,但是我不断收到错误消息:ValueError:不兼容的大小:参数“宽度”必须是长度 7 或标量。
我猜这可能与左侧列是索引列有关。有没有办法获得水平条形图?我需要转换它还是在函数中指定其他内容?
谢谢
【问题讨论】:
【参考方案1】:更新
pandas.Series.value_counts
是 Series
方法
用pandas.Series.plot
和kind='bar'
或kind='barh'
绘图
import seaborn as sns
# test data, loads a pandas dataframe
df = sns.load_dataset('planets')
# display(df.head(3))
method number orbital_period mass distance year
0 Radial Velocity 1 269.300 7.10 77.40 2006
1 Radial Velocity 1 874.774 2.21 56.95 2008
2 Radial Velocity 1 763.000 2.60 19.84 2011
# plot value_counts of Series
ax = df.method.value_counts().plot(kind='barh')
ax.set_xscale('log')
原答案
我觉得你可以用barh
:
CountStatus.plot.barh()
示例:
CountStatus = pd.value_counts(df['scstatus'].values, sort=True)
print CountStatus
AAC 8
AA 7
ABB 4
dtype: int64
CountStatus.plot.barh()
【讨论】:
以上是关于使用 Pandas Value_Counts 和 matplotlib的主要内容,如果未能解决你的问题,请参考以下文章
Python Pandas 计算两列的 value_counts 并使用 groupby
Python Pandas 使用 dataframe.stack().value_counts() - 如何获取计数对象的值?
pandas通过DatetimeProperties对象获取日期对象的星期几周几信息(weekday)使用value_counts函数统计每周不同天样本的个数