2016-07-12 7 views
1

Ich habe einen Datensatz von Verkehrsverstößen und möchte nur die Top 10 Verletzungen pro Monat auf einem Bargraph anzeigen. Kann ich die Anzahl der Balken nach dem Sortieren der Werte begrenzen, um nur die oberen 10 anzuzeigen? Es gibt 42 verschiedene Spaltennamen von Verkehrsverstößen.Sortieren und Begrenzen der Anzahl der Balken für die Anzeige in Bargraph

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

Feature_cols ist eine Liste aller 42 Spaltennamen, die zu Verkehrsübertretungen entsprechen.

Danke!

+0

'month_jan [feature_cols] .sum() sort_values ​​(aufsteigend = 0) [10] .plot (Art =‘ bar ') ' – bernie

+0

Perfekt! Vielen Dank! –

+0

Sie sind herzlich willkommen. – bernie

Antwort

0

Dies funktioniert.

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

Series Objekte haben eine .head Methode, genau wie DataFrame s (docs). Damit können Sie die oberen N Elemente sehr elegant mit data.head(N) auswählen. Hier ist ein komplettes Arbeitsbeispiel:

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') 
Verwandte Themen