Escrito por:
Al trabajar con Pandas se es común tener la necesidad de eliminar alguna columna de nuestro Dataframe, existen diferentes formas para hacerlo, a continuación veremos un pequeño ejemplo utilizando el método drop()
de la librería de Pandas.
Loading...
En este ejemplo tenemos un Dataframe con la información de los usuarios de una aplicación y queremos eliminar la columna Ultima_conexion, para esto simplemente podemos hacer uso del método drop()
y pasarle el parámetro columns
junto con el nombre de la columna que necesitamos eliminar, este método retorna una copia del Dataframe original con la columna eliminada.
Si estas interesado en aprender todos los métodos de pandas a través de ejercicios, te recomendamos este tutorial de pandas para machine learning gratuito, ahi tendrás muchos ejercicios para practicar y conocer nuevos métodos.
Existen diferentes formas de eliminar una columna de un Dataframe en Python, algunas pueden ser más eficientes que otras dependiendo de la situación. A continuación veremos algunas de las más utilizadas y eliminaremos algunas de las columnas del siguiente Daraframe.
Loading...
Posiblemente la mejor manera de eliminar una columna de un Dataframe es haciendo uso del método drop()
, este método ofrece una manera sencilla, intuitiva y eficiente de eliminar una o varias columnas de un Dataframe, puedes ver este artículo si quieres una explicación más completa de ¿Cómo usar el método drop de Pandas?. A continuación veremos un pequeño ejemplo:
1productos.drop(columns='Opiniones', inplace=True) 2print(productos)
output del código:
1 Producto Color Precio Disponibilidad 20 Espejo Mágico Plateado 29.99 En Stock 31 Libro de Sueños Rosa 12.50 Agotado 42 Varita Luminosa Dorado 45.99 En Stock 53 Sombrero Hechizado Negro 34.75 En Stock 64 Cristal Adivinatorio Transparente 55.99 Agotado
En este ejemplo estamos eliminando la columna (Opiniones) del Dataframe productos haciendo uso del método drop()
. Para eliminar una columna con ayuda de este método, simplemente necesitas pasarle el parámetro columns
y como valor a este parámetro le colocas el nombre de la columna que quieres eliminar.
Otra forma en la que puedes eliminar una columna de un Dataframe es haciendo uso de la palabra reservada del
, a continuación veremos un pequeño ejemplo.
1del productos['Disponibilidad'] 2print(productos)
output del código:
1 Producto Color Precio Opiniones 20 Espejo Mágico Plateado 29.99 87 31 Libro de Sueños Rosa 12.50 42 42 Varita Luminosa Dorado 45.99 95 53 Sombrero Hechizado Negro 34.75 68 64 Cristal Adivinatorio Transparente 55.99 76
En este ejemplo, estamos utilizando la palabra reservada de Python del
para eliminar la información del Dataframe productos en la columna (Disponibilidad). Esta es una manera sencilla de eliminar columnas innecesarias en un Dataframe.
Otra forma en la que puedes eliminar una columna de un Dataframe es haciendo uso del método pop()
.
1color = productos.pop('Color') 2 3print(color) 4print() 5print(productos)
output del código:
10 Plateado 21 Rosa 32 Dorado 43 Negro 54 Transparente 6Name: Color, dtype: object 7 8 Producto Precio Disponibilidad Opiniones 90 Espejo Mágico 29.99 En Stock 87 101 Libro de Sueños 12.50 Agotado 42 112 Varita Luminosa 45.99 En Stock 95 123 Sombrero Hechizado 34.75 En Stock 68 134 Cristal Adivinatorio 55.99 Agotado 76
En este ejemplo, hacemos uso del método pop()
para eliminar la columna (Color) del Dataframe productos. Este método recibe como parámetro el índice del elemento que se eliminará, después retorna el elemento en ese índice y lo elimina del Dataframe original.
Una forma interesante en al que también puedes eliminar una columna en un dataframe es haciendo uso de Slicing con ayuda nuevamente del método drop()
.
1productos.drop(['Precio'], axis=1, inplace=True) 2print(productos)
output del código:
1 Producto Color Disponibilidad Opiniones 20 Espejo Mágico Plateado En Stock 87 31 Libro de Sueños Rosa Agotado 42 42 Varita Luminosa Dorado En Stock 95 53 Sombrero Hechizado Negro En Stock 68 64 Cristal Adivinatorio Transparente Agotado 76
Slicing un Dataframe es una manera interesante de eliminar una columna en un Dataframe. En este ejemplo simplemente le pasamos una lista con el nombre de la columna que queremos eliminar, también es importante utilizar el parámetro axis=1
que indica que estamos eliminando elementos horizontalmente (columnas).
El método drop()
es un método de la librería de pandas que nos permite eliminar las filas o las columnas de un Dataframe. A continuación veremos los parámetros que recibe y para que se utiliza cada uno.
1dataframe.drop( 2 labels=None, 3 axis=0, 4 index=None, 5 columns=None, 6 level=None, 7 inplace=False, 8 errors='raise' 9)
labels
: etiquetas de índice o columna que se van a eliminar.axis
: especifica si se van a eliminar filas (axis=0
) o columnas (axis=1
).index
: etiqueta o lista de etiquetas a eliminar del eje 0.columns
: etiquetas o lista de etiquetas a eliminar del eje 1.level
: número entero o nombre del nivel a eliminar de un índice multinivel.inplace
: si es True
, se modifica el Dataframe original de lo contrario devuelve una copia modificada.errors
: si se establece en 'ignore', se suprimen los errores y solo se eliminan las etiquetas existentes, por otro lado si el valor es 'raise' el método devolverá un error cuando alguna de las etiquetas no exista.A continuación veremos las diferentes formas en las que puedes eliminar una columna en un Dataframe haciendo uso del método drop()
, además utilizaremos el siguiente Dataframe con la información de algunos animales de ejemplo.
Loading...
1animales_salvajes.drop(columns='Característica', inplace=True) 2print(animales_salvajes)
output del código:
1 Identificador Especie Edad Color 20 1003 Leopardo de las Nieves 4 Blanco y Gris 31 1027 Dragón Barbudo 2 Marrón y Amarillo 42 1378 Mapache Mascota 3 Gris y Negro 53 2067 Petauro del Azúcar 1 Gris y Blanco 64 2345 Serpiente del Arco Iris 5 Multicolor
Para eliminar una sola columna en un Dataframe podemos utilizar el método drop()
y pasarle el parámetro columns
con el nombre de la columna que deseas eliminar.
1animales_salvajes.drop(columns=['Identificador', 'Edad', 'Color'], inplace=True) 2print(animales_salvajes)
output del código:
1 Especie Característica 20 Leopardo de las Nieves Pelaje denso y suave 31 Dragón Barbudo Espinas en la cabeza 42 Mapache Mascota Máscara facial única 53 Petauro del Azúcar Membranas en patas para deslizarse 64 Serpiente del Arco Iris Patrón de colores vibrantes
Para eliminar múltiples columnas en un Dataframe simplemente necesitamos pasarla al método drop()
el parámetro columns
y como valor una lista con los nombres de las columnas que queremos eliminar.
Loading...
output del código:
1 Especie Color Característica 20 Leopardo de las Nieves Blanco y Gris Pelaje denso y suave 31 Dragón Barbudo Marrón y Amarillo Espinas en la cabeza 42 Mapache Mascota Gris y Negro Máscara facial única 53 Petauro del Azúcar Gris y Blanco Membranas en patas para deslizarse 64 Serpiente del Arco Iris Multicolor Patrón de colores vibrantes
En este ejemplo necesitamos eliminar todas las columnas del Dataframe animales_salvajes que contengan como valor un elemento de tipo (número), para conseguir todas las columnas que contiene un número podemos utilizar una list comprehension que guardará solo las columnas que contengan un número en su primera fila y después simplemente podemos pasarle al método drop()
el parámetro columns
con las lista de columnas a eliminar, en nuestro caso la lista columnas_para_eliminar
.
En algunas ocasiones, la eliminación física de las columnas puede no ser la mejor opción por diversas razones. A continuación veremos algunas alternativas que nos permiten manipular los datos sin la necesidad de eliminar físicamente las columnas del Dataframe, por ejemplo, cambiar los valores de las filas de la columna por el valor NaN
, por ceros o por algún otro valor.
Loading...
En este ejemplo no necesitamos los valores de las filas de la columna Popularidad
, podemos reemplazar los valores de esas filas por valores NaN
. La alternativa de cambiar los valores de una columna en lugar de eliminar físicamente la columna puede variar dependiendo de cada ocasión y el tipo de análisis que necesites hacer con la información del Dataframe.
La opción inplace
en el método drop()
nos permite determinar si queremos modificar el Dataframe original o generar una copia del Dataframe y retornar esa copia para almacenarla en una nueva variable. Es muy importante tener cuidado con este parámetro ya que puede eliminar de forma permanente información que puede ser relevante, en su lugar es aconsejable primero crear una copia del Dataframe original y después eliminar las columnas en la copia del Dataframe de esta manera si por alguna razón más adelante necesitas toda la información del Dataframe la puedes obtener en el Dataframe original.
Ventajas:
Desventajas:
En este artículo hemos visto diferentes formas de eliminar las columnas de un Dataframe, además, también vimos algunos ejemplos sobre cómo eliminar una o varias columnas con ayuda del método drop()
y algunas alternativas a la eliminación física de una columna. Te recomiendo que practiques los ejemplos aprendidos en este artículo con datasets más grandes, así entenderás mejor cómo funcionan y también aprenderás a utilizarlos con conjuntos de datos muy grandes algo que puede ser un poco complejo al comienzo, puedes buscar diferentes datasets para practicar en la página web kaggle.com.
Te invito a que sigas aprendiendo sobre la librería de Pandas junto con todos sus métodos y funcionalidades ya que esta librería nos proporciona bastantes recursos para manipular y modificar distintas estructura de datos como Dataframes y Series. Para explorar más sobre Pandas y análisis de datos, así como para llevar tus habilidades al siguiente nivel, te invitamos a registrarte de forma gratuita en 4Geeks.com.