¿Cómo ordenar un marco de datos de Pandas por índice y columna?

En este artículo, discutiremos cómo ordenar un marco de datos de Pandas tanto por índice como por columnas.

Método 1: ordenar el marco de datos según el índice

Podemos ordenar un DataFrame de Pandas según el índice y la columna usando el método sort_index .

  • Para ordenar el DataFrame según el índice, necesitamos pasar axis=0 como parámetro al método sort_index.
  • Para ordenar el DataFrame según el nombre de la columna, debemos pasar axis=1 como parámetro al método sort_index.

Sintaxis

DataFrame_Name.sort_index(axis=0, ascendente=True, inplace=False, kind=’quicksort’)

Parámetros

  • eje: especifica sobre qué base ordenar, ya sea según el índice o la columna. De forma predeterminada, ordena según el índice, es decir, eje = 0.
  • ascendente : especifica en qué orden ordenar, ya sea en orden ascendente o descendente. Acepta Verdadero o Falso. Por defecto es Verdadero.
  • inplace: especifica que los cambios en el DataFrame son temporales o permanentes. inplace=False indica temporal y True indica permanente.
  • kind: especifica qué algoritmo de clasificación usar. Acepta Quicksort, mergesort, heapsort, etc. Por defecto, es quicksort si no se menciona.

Marco de datos

 

col2

col1

3

150

70

2

170

55

1

160

60

Este fue el DataFrame que estamos usando en los siguientes códigos para ordenar. Al especificar axis=0 en el método sort_index, podemos ordenar el DataFrame. Incluso si no especificamos el parámetro del eje en sort_index por defecto, ordena el DataFrame según la fila.

Ejemplo:

 En este ejemplo, el DataFrame es un DataFrame ordenado basado en etiquetas de índice y se clasificó temporalmente en lenguaje python.

Python3

# import necessary packages
import pandas as pd
 
# create 2 dataframes with different indexes
hostelCandidates1 = pd.DataFrame({'col2': [150, 170, 160],
                                  'col1': [70, 55, 60]},
                                 index=[3, 2, 1])
print('original DataFrame')
print(hostelCandidates1)
 
# sorted temperorle based on index labels
print('Sorted by index')
hostelCandidates1.sort_index(axis=0)

Producción

original DataFrame
   col2  col1
3   150    70
2   170    55
1   160    60
Sorted by index

    col2     col1
1     160     60
2     170     55
3     150     70

Método 2: ordenar el marco de datos según las columnas

Para ordenar los datos en el marco de datos en función de los nombres de las columnas, debemos pasar axis=1 como parámetro al método sort_index en el lenguaje python.

Código

Python3

# import necessary packages
import pandas as pd
 
# create 2 dataframes with different indexes
hostelCandidates1 = pd.DataFrame({'col2': [150, 170, 160],
                                  'col1': [70, 55, 60]},
                                 index=[3, 2, 1])
print('original DataFrame')
print(hostelCandidates1)
 
# sorted temperorle based on column labels
print('Sorted by column name')
hostelCandidates1.sort_index(axis=1)

Producción

original DataFrame
   col2  col1
3   150    70
2   170    55
1   160    60
Sorted by column name

    col1     col2
3     70     150
2     55     170
1     60     160

Código de ejemplo para ordenar el DataFrame y guardar los cambios de forma permanente en el DataFrame original:

Aquí, la operación de clasificación se realiza directamente en el DataFrame original y los cambios se guardan de forma permanente debido al argumento inplace=True.

Python3

# import necessary packages
import pandas as pd
 
# create 2 dataframes with different indexes
hostelCandidates1 = pd.DataFrame({'col2': [150, 170, 160],
                                  'col1': [70, 55, 60]},
                                 index=[3, 2, 1])
print('original DataFrame')
print(hostelCandidates1)
 
# sorted permanently based on column labels
hostelCandidates1.sort_index(axis=1, inplace=True)
 
print('Modified Original DataFrame')
print(hostelCandidates1)

Producción

original DataFrame
   col2  col1
3   150    70
2   170    55
1   160    60
Modified Original DataFrame
   col1  col2
3    70   150
2    55   170
1    60   160

Publicación traducida automáticamente

Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *