2016-07-12 11 views
1

私は交通違反のデータセットを持っており、バーグラフ上で上位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

'month_jan [feature_cols] .SUM()sort_values(昇順= 0)[:10] .PLOT(種類=」バー ') ' – bernie

+0

パーフェクト!ありがとう! –

+0

大歓迎です。 – bernie

答えて

0

これは動作します: はここで完全な作業例です。

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

Seriesオブジェクトは(docs)のように.headメソッドを持っています。 これにより、上位N個のアイテムをdata.head(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') 
関連する問題