4. Ordenación y filtrado de datos

pandas/pandas-parte9
@Lautaroff 24-03-2025

Ordenación de datos en Pandas (sort_values)

El método sort_values() se usa para ordenar un DataFrame según los valores de una o más columnas.

Ordenar por una columna

import pandas as pd

df = pd.DataFrame({
    'Nombre': ['Ana', 'Luis', 'Carlos', 'Sofía'],
    'Edad': [23, 25, 20, 22]
})

# Ordenar por la columna 'Edad' en orden ascendente (predeterminado)
ordenado_asc = df.sort_values(by='Edad')
print(ordenado_asc)

Salida:

   Nombre  Edad
2  Carlos    20
3  Sofía    22
0     Ana    23
1    Luis    25

Ordenar en orden descendente

Para ordenar de mayor a menor, se usa ascending=False.

ordenado_desc = df.sort_values(by='Edad', ascending=False)
print(ordenado_desc)

Ordenar por múltiples columnas

Si se quiere ordenar por más de una columna, se pasa una lista:

# Ordenar por 'Edad' y, en caso de empate, por 'Nombre'
df.sort_values(by=['Edad', 'Nombre'], ascending=[True, True])

Filtrado de datos en Pandas (loc, query y máscaras booleanas)

Filtrar datos es fundamental en la manipulación de datos. Existen varios métodos eficientes para hacerlo en Pandas.

Filtrar con condiciones (loc y máscaras booleanas)

Se pueden filtrar filas según condiciones lógicas aplicadas sobre las columnas:

# Filtrar filas donde la edad sea mayor a 22
df_filtrado = df[df['Edad'] > 22]
print(df_filtrado)

Salida:

  Nombre  Edad
0   Ana    23
1  Luis    25

También se puede usar .loc[] para mayor claridad:

df_filtrado = df.loc[df['Edad'] > 22]

Filtrar con query()

El método query() permite expresar condiciones de manera más legible y concisa:

df_filtrado = df.query('Edad > 22')

Filtrar con múltiples condiciones

Se pueden combinar condiciones con & (AND) y | (OR):

# Filtrar personas mayores de 21 y cuyo nombre empiece con 'A' o 'S'
df_filtrado = df[(df['Edad'] > 21) & (df['Nombre'].str.startswith(('A', 'S')))]
print(df_filtrado)

Usando query(), la misma consulta se puede escribir como:

df.query("Edad > 21 and Nombre.str.startswith(('A', 'S'))")
Lección Anterior Curso Siguiente Lección