Data Analysis

Dominando el Filtrado de DataFrames Pandas: Una Guía Completa

Spread the love

Pandas es una poderosa biblioteca de Python para la manipulación y el análisis de datos. Filtrar filas de un DataFrame basándose en los valores de una columna es una tarea fundamental en el procesamiento de datos. Este artículo explora varias técnicas para filtrar DataFrames de Pandas de manera eficiente, cubriendo escenarios simples y complejos.

Tabla de contenido

Filtrado básico: Una sola columna, una sola condición

La forma más simple de filtrado implica seleccionar filas donde una columna específica coincide con un valor particular. Esto se logra utilizando indexación booleana.


import pandas as pd

# DataFrame de ejemplo
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'City': ['Nueva York', 'Londres', 'París', 'Tokio']}
df = pd.DataFrame(data)

# Seleccionar filas donde City es 'Londres'
residentes_londres = df[df['City'] == 'Londres']
print(residentes_londres)

Este código crea una máscara booleana (df['City'] == 'Londres') que es True donde la columna ‘City’ es ‘Londres’ y False en caso contrario. Esta máscara se utiliza luego para indexar el DataFrame, seleccionando solo las filas donde la máscara es True.

Negación: Selección de filas que no coinciden con una condición

Para seleccionar filas donde una columna no contiene un valor específico, niegue la condición booleana usando el operador !=.


# Seleccionar filas donde City NO es 'Londres'
no_residentes_londres = df[df['City'] != 'Londres']
print(no_residentes_londres)

Comparaciones numéricas: Mayor que, menor que, etc.

Para columnas numéricas, use operadores de comparación (>, <, >=, <=) para filtrar según rangos de valores.


# Seleccionar filas donde Age es mayor que 25
mayores_25 = df[df['Age'] > 25]
print(mayores_25)

# Seleccionar filas donde Age es menor o igual a 25
menores_o_iguales_25 = df[df['Age'] <= 25]
print(menores_o_iguales_25)

Combinación de condiciones: Operaciones AND y OR

Filtre en base a múltiples valores de columna combinando condiciones booleanas con operadores lógicos & (AND) y | (OR). Encierre cada condición entre paréntesis.


# Seleccionar filas donde City es 'Londres' AND Age es mayor que 25
londres_y_mayores = df[(df['City'] == 'Londres') & (df['Age'] > 25)]
print(londres_y_mayores)

# Seleccionar filas donde City es 'Londres' OR Age es mayor que 25
londres_o_mayores = df[(df['City'] == 'Londres') | (df['Age'] > 25)]
print(londres_o_mayores)

Filtrado avanzado: Múltiples columnas y lógica compleja

Para escenarios complejos, el método query() ofrece una mejor legibilidad.


# Usando query() para una mejor legibilidad
filtro_complejo = df.query('(City == "Londres" and Age > 25) or (Age < 23)')
print(filtro_complejo)

Filtrado eficiente con isin()

El método isin() proporciona una forma concisa de verificar si los valores están contenidos dentro de una lista.


ciudades_a_incluir = ['Londres', 'París']
df_filtrado = df[df['City'].isin(ciudades_a_incluir)]
print(df_filtrado)

Este artículo demostró varias técnicas para filtrar DataFrames en Pandas. La elección del método correcto depende de la complejidad de sus criterios de filtrado. Recuerde usar paréntesis correctamente con operadores lógicos para asegurar resultados precisos.

Deja una respuesta

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