Panda: ordina il dataframe per indice e colonna
È possibile utilizzare la seguente sintassi per ordinare un DataFrame panda per indice e colonna:
df = df. sort_values (by = [' column_name ', ' index '], ascending = [ False , True ])
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempi: ordinare DataFrame per indice e colonna
Il codice seguente mostra come ordinare un DataFrame panda in base alla colonna denominata points e quindi alla colonna dell’indice :
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
Il DataFrame risultante viene ordinato per punti in ordine decrescente, quindi per indice in ordine crescente (se ci sono due giocatori che ottengono lo stesso numero di punti).
Tieni presente che se non utilizziamo l’argomento ascendente , ciascuna colonna utilizzerà l’ordine crescente come metodo di ordinamento predefinito:
#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
Se la colonna dell’indice è attualmente senza nome, puoi rinominarla e quindi ordinarla di conseguenza:
#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
Risorse addizionali
Panda: come ordinare le colonne per nome
Panda: ordina il DataFrame per data
Panda: come rimuovere le righe duplicate