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
NaNcon 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