title | subtitle | tags | authors | |||
---|---|---|---|---|---|---|
¿Cómo hacer drop de una columna en Pandas? |
Explora métodos efectivos para eliminar una columna de un DataFrame en Pandas. Aprende técnicas y consideraciones importantes para la manipulación eficiente de datos en Python. |
|
|
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.
import pandas as pd
usuarios = pd.DataFrame({
'Usuario_ID': [101, 102, 103, 104, 105],
'Nombre_de_usuario': ['Alice_Wonder', 'Bob_Explorer', 'Charlie_Coder', 'David_DataGeek', 'Eve_Adventurer'],
'Edad': [28, 35, 22, 29, 31],
'Genero': ['Female', 'Male', 'Male', 'Male', 'Female'],
'Pais': ['USA', 'Canada', 'UK', 'Australia', 'Netherlands'],
'Suscripcion': ['Premium', 'Free', 'Premium', 'Free', 'Free'],
'Ultima_conexion': ['2023-01-10', '2023-01-09', '2023-01-11', '2023-01-08', '2023-01-10']
})
usuarios_actualizados = usuarios.drop(columns='Ultima_conexion')
print(usuarios_actualizados)
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.
import pandas as pd
productos = pd.DataFrame({
'Producto': ['Espejo Mágico', 'Libro de Sueños', 'Varita Luminosa', 'Sombrero Hechizado', 'Cristal Adivinatorio'],
'Color': ['Plateado', 'Rosa', 'Dorado', 'Negro', 'Transparente'],
'Precio': [29.99, 12.50, 45.99, 34.75, 55.99],
'Disponibilidad': ['En Stock', 'Agotado', 'En Stock', 'En Stock', 'Agotado'],
'Opiniones': [87, 42, 95, 68, 76,]
})
print(productos)
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:
productos.drop(columns='Opiniones', inplace=True)
print(productos)
output del código:
Producto Color Precio Disponibilidad
0 Espejo Mágico Plateado 29.99 En Stock
1 Libro de Sueños Rosa 12.50 Agotado
2 Varita Luminosa Dorado 45.99 En Stock
3 Sombrero Hechizado Negro 34.75 En Stock
4 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.
del productos['Disponibilidad']
print(productos)
output del código:
Producto Color Precio Opiniones
0 Espejo Mágico Plateado 29.99 87
1 Libro de Sueños Rosa 12.50 42
2 Varita Luminosa Dorado 45.99 95
3 Sombrero Hechizado Negro 34.75 68
4 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()
.
color = productos.pop('Color')
print(color)
print()
print(productos)
output del código:
0 Plateado
1 Rosa
2 Dorado
3 Negro
4 Transparente
Name: Color, dtype: object
Producto Precio Disponibilidad Opiniones
0 Espejo Mágico 29.99 En Stock 87
1 Libro de Sueños 12.50 Agotado 42
2 Varita Luminosa 45.99 En Stock 95
3 Sombrero Hechizado 34.75 En Stock 68
4 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()
.
productos.drop(['Precio'], axis=1, inplace=True)
print(productos)
output del código:
Producto Color Disponibilidad Opiniones
0 Espejo Mágico Plateado En Stock 87
1 Libro de Sueños Rosa Agotado 42
2 Varita Luminosa Dorado En Stock 95
3 Sombrero Hechizado Negro En Stock 68
4 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.
dataframe.drop(
labels=None,
axis=0,
index=None,
columns=None,
level=None,
inplace=False,
errors='raise'
)
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 esTrue
, 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.
import pandas as pd
animales_salvajes = pd.DataFrame({
'Identificador': [1003, 1027, 1378, 2067, 2345],
'Especie': ['Leopardo de las Nieves', 'Dragón Barbudo', 'Mapache Mascota', 'Petauro del Azúcar', 'Serpiente del Arco Iris'],
'Edad': [4, 2, 3, 1, 5],
'Color': ['Blanco y Gris', 'Marrón y Amarillo', 'Gris y Negro', 'Gris y Blanco', 'Multicolor'],
'Característica': ['Pelaje denso y suave', 'Espinas en la cabeza', 'Máscara facial única', 'Membranas en patas para deslizarse', 'Patrón de colores vibrantes']
})
print(animales_salvajes)
animales_salvajes.drop(columns='Característica', inplace=True)
print(animales_salvajes)
output del código:
Identificador Especie Edad Color
0 1003 Leopardo de las Nieves 4 Blanco y Gris
1 1027 Dragón Barbudo 2 Marrón y Amarillo
2 1378 Mapache Mascota 3 Gris y Negro
3 2067 Petauro del Azúcar 1 Gris y Blanco
4 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.
animales_salvajes.drop(columns=['Identificador', 'Edad', 'Color'], inplace=True)
print(animales_salvajes)
output del código:
Especie Característica
0 Leopardo de las Nieves Pelaje denso y suave
1 Dragón Barbudo Espinas en la cabeza
2 Mapache Mascota Máscara facial única
3 Petauro del Azúcar Membranas en patas para deslizarse
4 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.
columnas_para_eliminar = [
column for column in animales_salvajes.columns
if type(animales_salvajes[column][0]) != str
]
animales_salvajes.drop(columns=columnas_para_eliminar, inplace=True)
print(animales_salvajes)
output del código:
Especie Color Característica
0 Leopardo de las Nieves Blanco y Gris Pelaje denso y suave
1 Dragón Barbudo Marrón y Amarillo Espinas en la cabeza
2 Mapache Mascota Gris y Negro Máscara facial única
3 Petauro del Azúcar Gris y Blanco Membranas en patas para deslizarse
4 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.
import pandas as pd
import numpy as np
tecnologias = pd.DataFrame({
'Popularidad': ['Alta', 'Media', 'Alta', 'Muy Alta', 'Media'],
'Tecnologia': ['Inteligencia Artificial', 'Blockchain', 'Realidad Virtual', 'Internet de las Cosas', 'Impresión 3D'],
'Aplicacion': ['Asistentes virtuales', 'Contratos inteligentes', 'Entrenamiento médico', 'Casa inteligente', 'Prototipos de diseño'],
'Beneficios': ['Automatización de tareas', 'Transparencia y seguridad', 'Simulación de entornos', 'Conectividad total', 'Personalización rápida'],
})
tecnologias['Popularidad'] = np.nan
print(tecnologias)
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:
- Menos consumo de memoria al no crear un nuevo DataFrame.
- Puede ser más conveniente y eficiente para conjuntos de datos grandes.
Desventajas:
- Puede dificultar la trazabilidad y depuración del código.
- La pérdida de datos es permanente, sin posibilidad de retroceder.
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.