排序和限制条形图上显示的条形数

时间:2016-07-12 20:33:08

标签: python pandas bar-chart

我有一个交通违规数据集,并且想要在条形图上每月只显示前10个违规行为。排序值后,我可以限制条数,以仅显示前10个吗?有42种不同的交通违规列名。

month_jan = df[df.MonthName == "Jan"]
month_jan[feature_cols].sum().sort_values(ascending=0).plot(kind='bar')

Feature_cols是与交通违规相对应的所有42个列名称的列表。

谢谢!

2 个答案:

答案 0 :(得分:1)

这将有效:

month_jan[feature_cols].sum().sort_values(ascending=0)[:10].plot(kind='bar')

答案 1 :(得分:0)

Series个对象使用.head方法,就像DataFrame s(docs)一样。 这使您可以使用data.head(N)非常优雅地选择前N个项目。 这是一个完整的工作示例:

import pandas as pd

df = pd.DataFrame({
    'feature1': [0, 1, 2, 3],
    'feature2': [2, 3, 4, 5],
    'MonthName': ['Jan', 'Jan', 'Jan', 'Feb']
})
feature_cols = ['feature1', 'feature2']

month_jan = df[df.MonthName == "Jan"]
top10 = month_jan[feature_cols].sum().sort_values(ascending=0).head(10)
top10.plot(kind='bar')