2017-01-18 3 views
-1

Data Set in Frage:Wie finden Sie die drei größten Werte in einem Datenrahmen?

enter image description here

Für die Show in der obigen Bilddatensatz, Ich versuche, die drei bevölkerungsreichsten Staaten zu finden, während nur unter Berücksichtigung der drei bevölkerungsreichsten Bezirken für jede Zustand. Ich benutze CENSUS2010POP.

Diese Funktion sollte eine Liste mit Zeichenfolgenwerten zurückgeben (in der Reihenfolge der höchsten Population zur niedrigsten Population).

Unten ist mein Code:

x=census_df.groupby('STNAME')['CENSUS2010POP'].nlargest(3) 

Diese Anweisung gibt eine Reihe, in welchen Gruppen der drei bevölkerungsreichsten Bezirke jeden Staat sich.

Nun, was mache ich darüber hinaus, um weiter die bevölkerungsreichsten Staaten zu finden?

Verwenden Sie Schleifen oder gibt es eine andere effiziente Methode, um dies zu erreichen?

Antwort

1

Versuchen Hinzufügen Summe(), um die Funktion:

df = pd.DataFrame({'STNAME': ['Alabama', 'Alabama', 'Alabama', 'Alabama', 'Alaska', 'Alaska', 'Alaska', 'Alaska','New York', 'New York', 'New York', 'New York', 'California'], 
        'CTYNAME': ['a', 'b', 'c', 'd', 'z', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'], 
        'CENSUS2010POP': [120000, 230000, 89000, 43000, 23000, 34000, 120000, 10000, 1200000, 1300000, 9800000, 560000, 45000]}) 

x=df.groupby('STNAME')['CENSUS2010POP'].sum().nlargest(3) 

Ausgang:

STNAME 
New York 12860000 
Alabama  482000 
Alaska  187000 
Name: CENSUS2010POP, dtype: int64 
Verwandte Themen