Funzione Pandas DataFrame DataFrame.sort_values()
-
Sintassi di
pandas.DataFrame.sort_values(): -
Codici di esempio: ordina DataFrame con Pandas
pandas.DataFrame.sort_values()in base a una singola colonna -
Codici di esempio: ordina DataFrame con Pandas
DataFrame.sort_values()in base a più colonne -
Codici di esempio: ordina DataFrame in ordine decrescente con Pandas
DataFrame.sort_values() -
Codici di esempio: ordina DataFrame inserendo
NaNprima con PandasDataFrame.sort_values()
Il metodo Pandas DataFrame.sort_values() ordina il chiamante DataFrame in ordine crescente o decrescente in base ai valori nella colonna specificata lungo uno degli indici.
Sintassi di pandas.DataFrame.sort_values():
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind="quicksort",
na_position="last",
ignore_index=False,
)
Parametri
by |
Nome o lista di nomi in base a cui ordinare |
axis |
ordina lungo la riga (axis = 0) o la colonna (axis = 1) |
ascending |
ordina in ordine ascendente (ascendente = vero) o discendente (ascendente = falso) |
inplace |
Booleano. Se True, modifica il chiamante DataFrame sul posto |
kind |
quale algoritmo di ordinamento utilizzare. impostazione predefinita: quicksort |
na_position |
Metti il valore NaN all’inizio (na_position=first) o alla fine (na_position=last) |
ignore_index |
Booleano. Se True, gli indici dell’originale DataFrame vengono ignorati. Il valore predefinito è False, il che significa che vengono utilizzati gli indici. Novità nella versione 1.0.0 |
Ritorno
Se inplace è True, restituisce il DataFrame ordinato; altrimenti None.
Codici di esempio: ordina DataFrame con Pandas pandas.DataFrame.sort_values() in base a una singola colonna
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'])
print("After Sorting:")
print(sorted_df)
Produzione:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
Date Sales Price
1 April-11 300 1
2 April-12 400 2
5 April-16 300 2
0 April-10 200 3
4 April-14 300 3
3 April-13 200 4
Ordina il DataFrame df in ordine crescente (predefinito) in base ai valori nella colonna Price.
Gli indici nel DataFrame ordinato rimangono gli stessi dell’originale DataFrame.
Se preferisci avere la nuova colonna indice nel DataFrame ordinato, puoi impostare ignore_index (introdotto dalla versione 1.0.0) come True.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]
df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})
print("Before Sorting:")
print(df)
sorted_df = df.sort_values(by=["Price"], ignore_index=True)
print("After Sorting:")
Produzione:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-11 300 1
1 April-12 400 2
2 April-16 300 2
3 April-10 200 3
4 April-14 300 3
5 April-13 200 4
Qui, usiamo ignore_index=True per assegnare nuovi indici alle righe e ignorare l’indice del DataFrame originale.
Codici di esempio: ordina DataFrame con Pandas DataFrame.sort_values() in base a più colonne
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
df.sort_values(by=['Sales','Price'],
ignore_index=True,
inplace=True)
print("After Sorting:")
print(df)
Produzione:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-10 200 3
1 April-13 200 4
2 April-11 300 1
3 April-16 300 2
4 April-14 300 3
5 April-12 400 2
Qui, in un primo momento, Vendite viene ordinato prima in ordine crescente, quindi anche Price per ogni Sales viene ordinato in ordine crescente.
In df, 200 è il valore più piccolo della colonna Sales e 3 è il valore più piccolo della colonna Price per il valore Sales di 200.
Quindi, la riga con 200 nella colonna Sales e 3 in Price va in alto.
A causa di inplace=True, l’originale DataFrame viene modificato dopo aver chiamato la funzione sort_values().
Codici di esempio: ordina DataFrame in ordine decrescente con Pandas DataFrame.sort_values()
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Sales'],
ignore_index=True,
ascending=False)
print("After Sorting:")
print(sorted_df)
Produzione:
Before Sorting:
Date Sales Price
0 April-10 200 3
1 April-11 300 1
2 April-12 400 2
3 April-13 200 4
4 April-14 300 3
5 April-16 300 2
After Sorting:
Date Sales Price
0 April-12 400 2
1 April-11 300 1
2 April-14 300 3
3 April-16 300 2
4 April-10 200 3
5 April-13 200 4
Ordina il DataFrame df nell’ordine discendente dei valori della colonna Sales.
400 è il valore più grande nella colonna Sales; quindi la voce va in alto e le altre righe vengono ordinate di conseguenza.
Codici di esempio: ordina DataFrame inserendo NaN prima con Pandas DataFrame.sort_values()
import pandas as pd
dates=['April-10',
'April-11',
'April-12',
'April-13',
'April-14',
'April-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.DataFrame({'Date':dates ,
'Sales':sales ,
'Price': prices})
print("Before Sorting:")
print(df)
sorted_df=df.sort_values(by=['Price'],ignore_index=True,na_position='first')
print("After Sorting:")
print(sorted_df)
Produzione:
Before Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-11 300 1.0
2 April-12 400 2.0
3 April-13 200 4.0
4 April-14 300 3.0
5 April-16 300 NaN
After Sorting:
Date Sales Price
0 April-10 200 NaN
1 April-16 300 NaN
2 April-11 300 1.0
3 April-12 400 2.0
4 April-14 300 3.0
5 April-13 200 4.0
Per impostazione predefinita, i valori NaN vengono inseriti alla fine di DataFrame dopo l’ordinamento.
Ma impostando na_position=first, possiamo inserire i valori NaN all’inizio di DataFrame.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn