• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Como filtrar en base a listas o DataFrames en Pandas

septiembre 18, 2023 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 3 minutos

La indexación booleana en Pandas permite seleccionar de forma sencilla los elementos de un DataFrame en base a que los valores de una o varias filas cumplan ciertas condiciones. Solamente se debe crear un vector booleano con el valor True en las filas que se desean seleccionar. Algo que es fácil cuando la condición se debe comparar con un único valor, solamente se debe escribir la condición lógica. Para el caso de que se desee filtrar en base a listas se puede usar el método .isin() que poseen los DataFrames, veamos cómo se puede usar.

Seleccionar los elementos de un DataFrame en base a varios valores

En un DataFrame de Pandas se pueden seleccionar las filas en base a los valores de este usaron indexación booleana. Cuando se tiene que usar más de un valor se pueden combinar las condiciones. Por ejemplo, si se tiene un DataFrame con los valores entre 1 y 5 y se desea seleccionar los valores 2 y 4 se puede usar el siguiente código.

import pandas as pd

# Crear un DataFrame de ejemplo
data = {'columna_a_filtrar': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# Seleccionar las filas con 2 o 4 mediante indexación boolean
resultado = df[(df['columna_a_filtrar'] == 2) | (df['columna_a_filtrar'] == 4)]

print(resultado)
   columna_a_filtrar
1                  2
3                  4

En este ejemplo, una vez creado en DataFrame, se seleccionan únicamente aquellas columnas que contienen los valores 2 o 4 en la columna columna_a_filtrar. Algo bastante sencillo cuando son dos o tres valores, pero que se hace tedioso cuando son más de dos valores. Para estos casos se puede recurrir al método .isin() de los objetos DataFrame.

Exactitud, precisión, recall… qué mide realmente cada métrica (y qué no)
En Analytics Lane
Exactitud, precisión, recall… qué mide realmente cada métrica (y qué no)

Publicidad


Filtrar en base a listas con .isin()

El método .isin() de los DataFrame Pandas devuelve recibe una lista de valores y devuelve verdadero cuando el elemento de cada uno de los elementos de la Serie o DataFrame está en esa lista, falso en el resto de los casos. Así realizar la operación anterior se vuelve más sencillo, no es necesario escribir más código ni usar un bucle cuando aumenta el número de valores a comprobar. Solamente se debe usar el resultado del método como condición de filtrado. Lo que se puede ver en el siguiente ejemplo.

# Crear una lista con el filtro
data_filtro = [2, 4]

# Usar el método .isin() para filtrar
resultado = df[df['columna_a_filtrar'].isin(data_filtro)]

print(resultado)
   columna_a_filtrar
1                  2
3                  4

En este caso se ha creado una lista que se pasa como parámetro al método .isin(), siendo el resultado del método lo que se usa para el filtrado. Obteniendo los mismos resultados que antes con un código más sencillo de leer.

Filtrar en base a un DataFrame

En el caso anterior también se puede usar el contenido de un DataFrame, como se puede ver en el siguiente ejemplo.

# Crear un DataFrame con el filtro
data_filtro = {'filtro': [2, 4]}
df_filtro = pd.DataFrame(data_filtro)

# Usar el método .isin() para filtrar
resultado = df[df['columna_a_filtrar'].isin(df_filtro['filtro'])]

print(resultado)
   columna_a_filtrar
1                  2
3                  4

Publicidad


Seleccionar las filas que no coincidan con los valores

Si lo que se desea es seleccionar aquellos elementos que no están en la lista se puede usar el operador negación lógica (~) para invertir la selección. Lo que se muestra a continuación.

# Eliminar filas que coincidan con los valores en el DataFrame de filtro
resultado = df[~df['columna_a_filtrar'].isin(df_filtro['filtro'])]

print(resultado)
   columna_a_filtrar
0                  1
2                  3
4                  5

En este caso solamente se ha interpuesto el operador negación lógica para invertir la selección.

Conclusiones

El método .isin() permite comprobar de una forma rápida los elementos de un DataFrame o Serie se corresponde con los valores de una lista. Por lo que el resultado se puede emplear para filtrar en base a listas.

Image by Monika from Pixabay

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 1

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicidad


Publicaciones relacionadas

  • Exactitud, precisión, recall… qué mide realmente cada métrica (y qué no)
  • Hardening de SSH en Rocky Linux 9: cómo desactivar KEX débiles y reforzar la seguridad
  • Nueva herramienta en Analytics Lane: generador de contraseñas seguras y frases de contraseña
  • Hardening de NGINX en 2026: configuración segura básica paso a paso
  • ¿Qué métrica deberías mirar: exactitud, precisión o recall? Elegir bien empieza por entender el problema
  • Nueva calculadora DCA ajustada por inflación en el laboratorio de aplicaciones de Analytics Lane
  • Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
  • Nueva calculadora de préstamos e hipotecas en el laboratorio de aplicaciones de Analytics Lane
  • Hardening avanzado de NGINX: CSP, OCSP Stapling y defensa en profundidad

Publicado en: Python Etiquetado como: Pandas

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

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

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Nueva simulación de la estrategia Martingala en ruleta en el laboratorio de aplicaciones de Analytics Lane

abril 1, 2026 Por Daniel Rodríguez

Nuevo generador y verificador de hashes en el laboratorio de aplicaciones de Analytics Lane

marzo 31, 2026 Por Daniel Rodríguez

Hardening avanzado de NGINX: CSP, OCSP Stapling y defensa en profundidad

marzo 26, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia publicado el octubre 2, 2025 | en Ciencia de datos, Opinión
  • ¿Por qué recibo ‘NameError: name X is not defined’ en Python? Aprende cómo solucionarlo publicado el marzo 17, 2025 | en Python
  • Método del codo (Elbow method) para seleccionar el número óptimo de clústeres en K-means publicado el junio 9, 2023 | en Ciencia de datos
  • Visualización de datos categóricos en Seaborn publicado el agosto 1, 2023 | en Python
  • Importar automáticamente las dependencias en Python con una línea publicado el abril 25, 2022 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto