Cómo eliminar filas de un DataFrame de Python Pandas según una condición

Sencillo ejemplo de cómo eliminar una fila de un DataFrame Pandas de Python en función de una expresión condicional. Como bonus track al final vemos cómo eliminar también una columna.

Partimos de este sencillo DataFrame creado en Excel como ejemplo:

La forma de cargar en Pandas éste DataFrame desde un archivo Excel es la siguiente:

import pandas as pd

df = pd.read_excel('prueba.xlsx') # Carga del fichero Excel

Ahora vamos a suponer que queremos eliminar todas las filas que tengan en el atributo ‘C’ el valor de ‘True‘. Ejecutamos lo siguiente:

df = df.drop(df[df['C']==True].index)

Tras esa línea de código, se habrán eliminado todas las filas en las que el valor de ‘C’ fuera ‘True‘, quedando solo las que el valor fuera ‘False‘. El DataFrame quedará de la siguiente forma:

Supongamos ahora que queremos eliminar todas las filas cuyo valor del atributo ‘D’ sea mayor que 10. Esto debería eliminarnos las filas 2 y 6 y dejarnos un DataFrame de solo dos filas, la 4 y 5. Lo haríamos de la siguiente forma:

df = df.drop(df[df['D']>10].index)

Esa línea de código nos dejaría el siguiente DataFrame tal como hemos predicho:

Por último, y como bonus-track, vamos a eliminar la columna ‘E’ en del DataFrame Pandas:

df = df.drop('E', 1)

El resultado final es el esperado:

Nota: podemos resetear el index del DataFrame modificado de la siguiente forma:

df = df.reset_index(drop=True)
Para saber más:

Python – Eliminar fila de DataFrame en Pandas basado en valor de columna.
Python – Cómo eliminar filas de un DataFrame de pandas basado en una expresión condicional.

9 comentarios en “Cómo eliminar filas de un DataFrame de Python Pandas según una condición”

  1. Muy interesante! pero me queda una duda, que tal si quiero borrar la primera fila de un segmento especifico de clientes? Por ejemplo: Todos los clientes que tienen ojos azules quiero borrar su primera fila pero mantener el resto

  2. Hola.

    He intentado usar el método de borrar filas sujeto a una condición pero añadiendo otra más (2 condiciones) con un and en medio. Pero no me funciona. ¿Con qué código podría conseguirlo?

    Muchas gracias y un saludo.

  3. yo querría saber si eso se puede hacer con la tabla de un pdf (read_pdf), ya que pasar mi archivo de pdf a Excel, en Excel realizar dicha operación y después reconvertirlo a pdf es algo que no me sirve, porque pierdo la estética del pdf.
    gracias y un saludo.

Deja una respuesta