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
NaN
prima 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