A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Buscar en lecciones


IngresarEmpezar
← Volver a Cómo hacerlo
Editar en Github

¿Cómo usar el método drop de Pandas?

Escrito por:

Pandas es una de las librerías más importantes a la hora de trabajar en la ciencia de datos o machine learning (Si te interesa aprender pandas desde cero, tenemos este tutorial de pandas para machine learning), una de las estructuras más importantes que ofrece Pandas en el DataFrame que representa una tabla bidimensional de filas y columnas. Uno de los métodos de Pandas más importantes para trabajar con un DataFrame es el método drop que nos permite eliminar filas o columnas innecesarias de esta estructura, a continuación veremos un pequeño ejemplo.

1import pandas as pd 2 3users_df = pd.DataFrame({ 4 "Nombre": ["John", "Mary", "Jane"], 5 "Apellido": ["Smith", "Johnson", "Brown"], 6 "Edad": [25, 30, 35], 7}) 8 9drop_column = users_df.drop(columns="Apellido") 10drop_row = users_df.drop(index=0) 11 12print(drop_column) 13print(drop_row)

output del código:

1 Nombre Edad 20 John 25 31 Mary 30 42 Jane 35 5 6 Nombre Apellido Edad 71 Mary Johnson 30 82 Jane Brown 35

En este ejemplo, creamos un DataFrame con tres columnas Nombre, Apellido y Edad y tres usuarios, luego con la ayuda del método drop() eliminamos la columna Apellido pasándole como argumento columns="Apellido", también podemos eliminar la primera fila del DataFrame pasandole el argumento index=0. Cómo vemos este es un pequeño ejemplo sobre cómo eliminar filas o columnas dentro de un DataFrame con ayuda del método drop(), este método puede recibir varios argumentos los cuales veremos en más detalle a continuación.

Conceptos básicos del método drop() de pandas

El método drop() de Pandas nos permite eliminar las filas o las columnas de un DataFrame de información, este método puede recibir varios argumentos que permiten especificar el tipo y la cantidad de estructuras que deseas eliminar. A continuación veremos cuales son los parámetros que recibe y los valores que puede retornar:

1data_frame.drop(labels, axis, index, columns, level, inplace, errors)

Parámetros del método drop:

  • labels: (opcional), representa las etiquetas o índices a eliminar, si deseas eliminar varias debes especificarlas en una lista.
  • axis: (opcional) especifica si deseas eliminar etiquetas o columnas, si deseas eliminar etiquetas debes pasarle como valor (0 o 'index') y si deseas eliminar columns debes pasarle (1 o 'columns'), este parámetro tiene un valor por defecto de 0.
  • index: (opcional) este parámetro representa el nombre de la fila o las filas a eliminar. Puede ser usado en lugar del parámetro labels.
  • columns (opcional) representa el nombre de la columna o columnas a eliminar. Puede ser usado en lugar del parámetro labels.
  • level (opcional) este parámetro especifica qué nivel debe comprobarse en una jerarquía multi índice. Tiene un valor por defecto de None.
  • inplace: (opcional) si el valor de este parámetro es True se realiza la eliminación deseada y se modifica el DataFrame original pero si el valor es False retorna una copia del DataFrame original con la eliminación deseada, por defecto tiene un valor de False.
  • errors: (opcional) este parámetro puede recibir dos valores ('ignore', 'raise'), el valor 'ignore' suprime los error y elimina sólo las etiquetas existentes pero si el valor es 'raise' detiene la eliminación de etiquetas si alguna de ellas no existe, el valor por defecto es 'raise'.

Valores que Retorna:

Este método retorna por defecto una copia del Dataframe original con las eliminaciones realizadas, pero si el parámetro inplace tiene el valor de True este método retorna None y modifica el DataFrame original.

Errores que puede arrojar:

Este método retorna un error de tipo KeyError si alguna de las etiquetas no existe dentro del DataFrame especificado, pero el error se puede ignorar si le pasamos el parámetro errors con el valor de 'ignore'.

Eliminación de Columnas

A continuación veremos algunos ejemplos sobre cómo utilizar el método drop() de Pandas para eliminar columnas innecesarias en un DataFrame, veremos cómo eliminar una columna en particular, cómo eliminar varias columnas y cómo eliminar una columna dependiendo de una condición.

Eliminar una sola columna por nombre

Para eliminar una sola columna podemos usar el método drop() con el parámetro columns y le pasamos el nombre de la columna, ejemplo:

1import pandas as pd 2 3users_df = pd.DataFrame({ 4 "Nombre": ["John", "Mary", "Jane"], 5 "Apellido": ["Smith", "Johnson", "Brown"], 6 "Email": ["jhon@email.com", "mary@email.com", "jane@email.com"], 7 "Telefono": [123_456_7890, 456_123_7890, 789_456_1230] 8}) 9 10users_df.drop(columns="Telefono", inplace=True) 11print(users_df)

code output:

1 Nombre Apellido Email 20 John Smith jhon@email.com 31 Mary Johnson mary@email.com 42 Jane Brown jane@email.com

Cómo puedes ver, eliminar una solo columna dentro de un DataFrame es muy sensillo gracias al método drop(), en este ejemplo le pasamos el parámetro columns con el nombre de la columna que deseamos eliminar, la columna Telefono tambien le pasamos el parámetro inplace con el valor de True para que modifique el DataFrame original.

Eliminar múltiples columnas

Para eliminar múltiples columnas también es bastante sencillo con ayuda del método drop(), para poder eliminar varias columnas necesitamos pasarle una lista con el nombre de las columnas, ejemplo:

1import pandas as pd 2 3users_df = pd.DataFrame({ 4 "Nombre": ["John", "Mary", "Jane"], 5 "Apellido": ["Smith", "Johnson", "Brown"], 6 "Email": ["jhon@email.com", "mary@email.com", "jane@email.com"], 7 "Telefono": [123_456_7890, 456_123_7890, 789_456_1230] 8}) 9 10users_df.drop(columns=["Apellido", "Telefono"], inplace=True) 11print(users_df)

code output:

1 Nombre Email 20 John jhon@email.com 31 Mary mary@email.com 42 Jane jane@email.com

En este ejemplo, para poder eliminar varias columnas necesitamos pasarle el parámetro columns y cómo valor le pasamos una lista con los nombres de las columnas que deseamos eliminar, también le pasamos el parámetro inplace con el valor de True para que modifique el DataFrame original.

Eliminar columnas basadas en una condición

Para eliminar columnas basadas en una condición podemos hacerlo de varias formas, a continuación veremos una de ellas con un pequeño ejemplo.

1import pandas as pd 2 3users_df = pd.DataFrame({ 4 "Nombre": ["John", "Mary", "Jane"], 5 "Apellido": ["Smith", "Johnson", "Brown"], 6 "Edad": [23, 45, 30], 7 "Email": ["jhon@email.com", "mary@email.com", "jane@email.com"], 8 "Telefono": [123_456_7890, 456_123_7890, 789_456_1230] 9}) 10 11columnas_innecesarias = [ 12 column for column in users_df.columns 13 if column != "Nombre" and column != "Apellido" 14] 15 16users_df.drop(columns=columnas_innecesarias, inplace=True) 17print(users_df)

code output:

1 Nombre Apellido 20 John Smith 31 Mary Johnson 42 Jane Brown

En este ejemplo, queremos dejar en el DataFrame de users_df solo las columnas Nombre y Apellido y eliminar el resto de columnas, para esto hacemos uso de una list comprehension para recorrer todas las columnas y utilizamos un condicional if para verificar que agregue en la lista todas las columnas que no sean Nombre y Apellido y guardamos el resultado en la variable columnas_innecesarias, luego simplemente llamamos al método drop() y le pasamos esa lista cómo valor al parámetro columns además también le pasamos el parámetro inplace con el valor de True para que modifique el DataFrame original.

Uso de la opción inplace

Cómo hemos visto en los ejemplos anteriores, el método drop() tiene un parámetro llamado inplace que permite modificar el DataFrame original o devolver una copia modificada. El valor por defecto de este parámetro es False, lo que significa que el método drop() no cambia el DataFrame original, sino que devuelve un nuevo DataFrame sin las columnas eliminadas. Si queremos guardar los cambios en el DataFrame original, debemos especificar el valor de inplace=True.

El uso de la opción inplace tiene algunas ventajas y desventajas que debemos tener en cuanta a la hora de utilizarla:

  • Ventajas:

    • Ahorra memoria al no crear un nuevo objeto.
    • Evita confusiones al tener un solo DataFrame modificado.
    • Simplifica el código al no tener que asignar el resultado a una nueva variable.
  • Desventajas:

    • Pérdida de datos: si se utiliza inplace=True y más tarde te das cuenta de que cometiste un error, los datos originales pueden estar perdidos y no podrás recuperarlos fácilmente.
    • Puede causar errores si se intenta usár el método drop() sobre un DataFrame que ya ha sido modificado con inplace=True.

En general, se recomienda usar la opción inplace con precaución y sólo cuando sea necesario. Una buena práctica es hacer una copia del DataFrame original antes de modificarlo con la opción inplace=True, en caso de ser necesario recuperar los datos originales.

Conclusión

En este artículo aprendimos cómo eliminar las columnas de un DataFrame haciendo uso del método drop() de la librería de Pandas, vimos cómo eliminar una tabla en particular, cómo eliminar varias tablas pasándolas en una lista y como eliminar tablas dependiendo de una condición también vimos los parámetros que recibe este método y cómo podemos identificar cuáles columnas debemos eliminar en un DataFrame, además vimos algunos conceptos básicos con pequeños ejemplos de código.

Te animo a que sigas practicado con este método y que intentes utilizarlo en casos más complejos ya que este método es muy importante para trabajar con DataFrames, es esencial a la hora de trabajar en la ciencia de datos o machine learning. Te invitamos a explorar el curso de Data Science y Machine Learning de 4Geeks Academy, donde aprenderás desde los conceptos básicos de machine learning, hasta convertirte en un experto en el manejo y análisis de datos. También puedes chequear nuestro blog para mejorar tus habilidades en Python y análisis de datos. Si deseas llevar tu aprendizaje al siguiente nivel, te animamos a registrarte de forma totalmente gratuita en 4Geeks.com.

¡Diviértete aprendiendo! 😉👋