Función Pandas DataFrame sort_index()

Suraj Joshi 30 enero 2023
  1. Método pandas.DataFrame.sort_index()
  2. Ejemplo: ordenar un DataFrame de Pandas según el índice utilizando el método sort_index()
  3. Ejemplo: Ordenar columnas de un DataFrame de Pandas usando el método sort_index()
Función Pandas DataFrame sort_index()

Este tutorial explica cómo podemos ordenar un Pandas DataFrame basado en un índice usando el método pandas.DataFrame.sort_index().

Usaremos el DataFrame que se muestra en el ejemplo anterior para explicar cómo podemos ordenar un Pandas DataFrame en función de los valores de índice.

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

print(pets_df)

Producción:

      Pet    Name  Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1  Rabbit    Coco           5
3    Fish  Finley           4

Método pandas.DataFrame.sort_index()

Sintaxis

DataFrame.sort_index(axis=0,
                     level=None,
                     ascending=True,
                     inplace=False,
                     kind='quicksort',
                     na_position='last',
                     sort_remaining=True,
                     ignore_index=False
                     key=None)

Parámetros

axis ordenar a lo largo de la fila (axis = 0) o columna (axis = 1)
level Int o List. Ordenar por valores en niveles de índice especificados
ascending ordenar en orden ascendente (ascending = True) o en orden descendente (ascending = False)
inplace Booleano. Si es True, modifique el DataFrame de la persona que llama en el lugar
kind qué algoritmo de clasificación utilizar. predeterminado: quicksort
na_position Ponga el valor NaN al principio (na_position = 'first') o al final (na_position = 'last')
sort_remaining Booleano. Si es True, ordene también por otros niveles (en orden) después de ordenar por nivel especificado para index = multinivel
ignore_index Booleano. Si es True, la etiqueta del eje resultante será 0,1, … n-1.
key Invocable. Si no es Ninguno, aplique esta función de key a los valores de índice antes de ordenar.

Retorna

Si inplace es True, devuelve el DataFrame ordenado por índice a lo largo del eje especificado; de lo contrario, None.

Por defecto, tenemos axis = 0, lo que representa que el DataFrame se ordenará a lo largo del eje de la fila o se ordenará por valores de índice. Si establecemos axis = 1, ordenará las columnas del DataFrame. De forma predeterminada, el método clasificará el DataFrame en orden ascendente. Para ordenar el DataFrame en orden descendente, establecemos ascending=False.

Ejemplo: ordenar un DataFrame de Pandas según el índice utilizando el método sort_index()

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

sorted_df = pets_df.sort_index()

print("Initial DataFrame:")
print(pets_df, "\n")

print("DataFrame Sorted by Index Values:")
print(sorted_df)

Producción:

Initial DataFrame:
      Pet    Name Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1 Rabbit    Coco           5
3    Fish Finley           4

DataFrame Sorted by Index Values:
      Pet    Name Age(Years)
1 Rabbit    Coco           5
2     Cat    Luna           5
3    Fish Finley           4
4     Dog   Rocky           3

Ordena el DataFrame pet_df en orden ascendente según los valores del índice. Para ordenar el DataFrame basado en valores de índice, necesitamos especificar el parámetro index. Por defecto, el valor de axis es 0, que ordena las filas del DataFrame, es decir, ordena el DataFrame en función de los valores de índice.

Para ordenar el DataFrame basado en valores de índice en orden descendente, establecemos ascending=False en el método sort_index().

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

sorted_df = pets_df.sort_index(ascending=False)

print("Initial DataFrame:")
print(pets_df, "\n")

print("DataFrame Sorted in Descending order based Index Values:")
print(sorted_df)

Producción:

Initial DataFrame:
      Pet    Name Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1 Rabbit    Coco           5
3    Fish Finley           4

DataFrame Sorted in Descending order based Index Values:
      Pet    Name Age(Years)
4     Dog   Rocky           3
3    Fish Finley           4
2     Cat    Luna           5
1 Rabbit    Coco           5

Ordena el DataFrame pets_df en orden descendente según los valores del índice.

Ejemplo: Ordenar columnas de un DataFrame de Pandas usando el método sort_index()

Para ordenar las columnas de un Pandas DataFrame, establecemos axis = 1 en el método sort_index().

import pandas as pd

pets_df = pd.DataFrame(
    {
        "Pet": ["Dog", "Cat", "Rabbit", "Fish"],
        "Name": ["Rocky", "Luna", "Coco", "Finley"],
        "Age(Years)": [3, 5, 5, 4],
    },
    index=["4", "2", "1", "3"],
)

sorted_df = pets_df.sort_index(axis=1)

print("Initial DataFrame:")
print(pets_df, "\n")

print("DataFrame with sorted Columns:")
print(sorted_df)

Producción:

Initial DataFrame:
      Pet    Name  Age(Years)
4     Dog   Rocky           3
2     Cat    Luna           5
1  Rabbit    Coco           5
3    Fish  Finley           4

DataFrame with sorted Columns:
   Age(Years)    Name     Pet
4           3   Rocky     Dog
2           5    Luna     Cat
1           5    Coco  Rabbit
3           4  Finley    Fish

Ordena las columnas del DataFrame pets_df. Las columnas están ordenadas en orden ascendente por el nombre de las columnas.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas DataFrame