我有一个交通违规数据集,并且想要在条形图上每月只显示前10个违规行为。排序值后,我可以限制条数,以仅显示前10个吗?有42种不同的交通违规列名。
month_jan = df[df.MonthName == "Jan"]
month_jan[feature_cols].sum().sort_values(ascending=0).plot(kind='bar')
Feature_cols
是与交通违规相对应的所有42个列名称的列表。
谢谢!
答案 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')