Función Pandas DataFrame DataFrame.sort_values()
-
La sintaxis de
pandas.DataFrame.sort_values()
: -
Códigos de ejemplo: Ordena el DataFrame con Pandas
pandas.DataFrame.sort_values()
basado en una sola columna -
Códigos de ejemplo: Ordenar DataFrame con Pandas
DataFrame.sort_values()
Basado en múltiples columnas -
Códigos de ejemplo: Ordenar DataFrame en orden descendente con Pandas
DataFrame.sort_values()
-
Códigos de ejemplo: Ordena DataFrame poniendo primero a
NaN
con PandasDataFrame.sort_values()
El método de Pandas DataFrame.sort_values()
ordena el llamador DataFrame
en orden ascendente o descendente por los valores de la columna especificada a lo largo de cualquiera de los índices.
La sintaxis de pandas.DataFrame.sort_values()
:
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind="quicksort",
na_position="last",
ignore_index=False,
)
Parámetros
by |
Nombre o lista de nombres para ordenar por |
axis |
ordenar a lo largo de la fila (axis=0) o fila (axis=1) |
ascending |
ordenados en orden ascendente (ascending=True ) o descendente (ascending=True ). |
inplace |
Booleana. Si es True , modifica la llamada DataFrame en su lugar. |
kind |
qué algoritmo de clasificación usar. default: quicksort |
na_position |
Ponga el valor NaN al principio (na_position=first ) o al final (na_position=last ). |
ignore_index |
Booleana. Si True , los índices del DataFrame original son ignorados. El valor por defecto es False , lo que significa que los índices son usados. |
Retorna
Si inplace
es True
, devuelve el DataFrame
clasificado; si no, None
.
Códigos de ejemplo: Ordena el DataFrame con Pandas pandas.DataFrame.sort_values()
basado en una sola columna
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)
Resultado:
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
Ordena el DataFrame df
en orden ascendente (por defecto) por los valores de la columna Price
.
Los índices en el DataFrame
clasificado se mantienen igual que en el DataFrame
original.
Si prefieres tener la nueva columna de índices en el DataFrame
ordenado, entonces puedes poner ignore_index
(introducido a partir de la versión 1.0.0) como 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:")
Resultado:
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
Aquí, usamos ignore_index=True
para asignar nuevos índices a las filas e ignorar el índice del DataFrame
original.
Códigos de ejemplo: Ordenar DataFrame con Pandas DataFrame.sort_values()
Basado en múltiples columnas
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)
Resultado:
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
Aquí, al principio, Sales
se ordena primero en el orden ascendente, y luego Price
para cada Sales
también se ordena en el orden ascendente.
En el df
, 200
es el valor más pequeño de la columna Sales
y l
es el valor más pequeño de la columna Price
para el valor de Sales
de alo
.
Así, la fila con 200
en la columna Sales
y l
en el Price
va a la parte superior.
Debido a inplace=True
, el DataFrame
original se modifica después de llamar a la función sort_values()
.
Códigos de ejemplo: Ordenar DataFrame en orden descendente 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)
Resultado:
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
Ordena el DataFrame df
en el orden descendente de los valores de la columna Sales
.
400
es el mayor valor de la columna Sales
, por lo que la entrada va al principio, y las otras filas se ordenan en consecuencia.
Códigos de ejemplo: Ordena DataFrame poniendo primero a NaN
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)
Resultado:
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
Por defecto, los valores NaN
se colocan al final de DataFrame
después de la clasificación.
Pero al establecer na_position=first
, podemos colocar los valores NaN
al principio de DataFrame
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn