Panda's: sorteer het dataframe op index en kolom
U kunt de volgende syntaxis gebruiken om een Panda DataFrame te sorteren op index en kolom:
df = df. sort_values (by = [' column_name ', ' index '], ascending = [ False , True ])
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeelden: sorteer het DataFrame op index en kolom
De volgende code laat zien hoe u een Panda DataFrame sorteert op de kolom met de naam points en vervolgens op de indexkolom :
import pandas as pd #createDataFrame df = pd. DataFrame ({' id ': [1, 2, 3, 4, 5, 6, 7, 8], ' points ': [25, 15, 15, 14, 20, 20, 25, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}). set_index (' id ') #view first few rows df. head () points assists rebounds id 1 25 5 11 2 15 7 8 3 15 7 10 4 14 9 6 5 20 12 6 #sort by points and then by index df. sort_values (by = [' points ', ' id '], ascending = [ False , True ]) points assists rebounds id 8 29 4 12 1 25 5 11 7 25 9 9 5 20 12 6 6 20 9 5 2 15 7 8 3 15 7 10 4 14 9 6
Het resulterende DataFrame wordt gesorteerd op punten in aflopende volgorde en vervolgens op index in oplopende volgorde (als er twee spelers zijn die hetzelfde aantal punten scoren).
Houd er rekening mee dat als we het oplopende argument niet gebruiken, elke kolom de oplopende volgorde als standaard sorteermethode zal gebruiken:
#sort by points and then by index df. sort_values (by = [' points ', ' id ']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
Als de indexkolom momenteel geen naam heeft, kunt u de naam ervan wijzigen en deze vervolgens dienovereenkomstig sorteren:
#sort by points and then by index df. rename_axis (' index '). sort_values (by = [' points ', ' id ']) points assists rebounds id 4 14 9 6 2 15 7 8 3 15 7 10 5 20 12 6 6 20 9 5 1 25 5 11 7 25 9 9 8 29 4 12
Aanvullende bronnen
Panda’s: kolommen op naam sorteren
Panda’s: sorteer het DataFrame op datum
Panda’s: dubbele rijen verwijderen