Eliminar Columnas en Pandas: Una Guía Completa para drop columns pandas

Eliminar Columnas en Pandas: Una Guía Completa para drop columns pandas

Pandas es una biblioteca de Python esencial para el análisis de datos, y la manipulación de DataFrames es una de sus funciones más comunes. La eliminación de columnas es una tarea frecuente en el preprocesamiento de datos, y Pandas proporciona diferentes maneras de hacerlo. Esta guía te ofrece un desglose completo de las técnicas para drop columns pandas, cubriendo desde los métodos básicos hasta casos más específicos.

drop columns pandas con la función .drop()

La función .drop() es la herramienta principal para drop columns pandas. Acepta dos argumentos principales: el nombre o los nombres de las columnas a eliminar y el eje a lo largo del cual se realiza la eliminación (por defecto, axis=1 para eliminar columnas). La función .drop() devuelve una copia modificada del DataFrame original, manteniendo el DataFrame original intacto.

Eliminar una sola columna

Para eliminar una sola columna, simplemente especifica su nombre dentro de la función .drop():

«`python
import pandas as pd

data = {‘nombre’: [‘Alice’, ‘Bob’, ‘Charlie’],
‘edad’: [25, 30, 28],
‘ciudad’: [‘New York’, ‘Los Ángeles’, ‘Chicago’]}
df = pd.DataFrame(data)

Eliminar la columna ‘edad’

dfsinedad = df.drop(‘edad’, axis=1)
print(dfsinedad)
«`

En este ejemplo, df.drop('edad', axis=1) elimina la columna ‘edad’ del DataFrame, creando un nuevo DataFrame llamado df_sin_edad. El DataFrame original, df, permanece sin cambios.

Eliminar múltiples columnas

Puedes eliminar varias columnas especificando una lista de nombres de columnas:

«`python

Eliminar las columnas ‘edad’ y ‘ciudad’

dfsinedadciudad = df.drop([‘edad’, ‘ciudad’], axis=1)
print(df
sinedadciudad)
«`

En este caso, la función .drop() recibe una lista con los nombres de las columnas a eliminar, creando un nuevo DataFrame que contiene solo la columna ‘nombre’.

LEER:  Construyendo un sistema operativo desde cero: Implementación de comandos básicos en Python para LFS

Eliminar columnas «en su lugar»

Si deseas modificar el DataFrame original directamente, puedes usar el parámetro inplace=True:

«`python

Eliminar la columna ‘edad’ en el DataFrame original

df.drop(‘edad’, axis=1, inplace=True)
print(df)
«`

Al establecer inplace=True, la función .drop() realiza la eliminación en el DataFrame original, modificando su contenido. Ya no se necesita crear un nuevo DataFrame.

Suprimir errores con el parámetro errors

Por defecto, si intentas eliminar una columna que no existe, la función .drop() lanza un error. Para evitar esto, puedes utilizar el parámetro errors='ignore':

«`python

Intentar eliminar la columna ‘no_existe’, ignorando el error

df.drop(‘no_existe’, axis=1, errors=’ignore’)
print(df)
«`

Con errors='ignore', la función .drop() simplemente ignora la solicitud de eliminar la columna inexistente.

Eliminar columnas por posición de índice

Si necesitas eliminar columnas por su posición de índice, puedes usar el parámetro columns con una lista de índices:

«`python

Eliminar la columna en el índice 1

df.drop(columns=[1], axis=1)
print(df)
«`

Este código elimina la columna en el índice 1, en este caso, la columna ‘edad’, sin importar su nombre.

Eliminar columnas en DataFrames multi-índice

En DataFrames multi-índice, puedes eliminar columnas especificando la posición del nivel en el que se encuentra la columna, utilizando el parámetro level:

«`python

Crear un DataFrame multi-índice

data = {‘nombre’: [‘Alice’, ‘Bob’, ‘Charlie’],
‘edad’: [25, 30, 28],
‘ciudad’: [‘New York’, ‘Los Ángeles’, ‘Chicago’]}
df = pd.DataFrame(data)
df = df.set_index([‘nombre’, ‘edad’])

Eliminar la columna en el nivel 0 del índice

df.drop(columns=[‘ciudad’], level=0)
print(df)
«`

Este ejemplo elimina la columna ‘ciudad’, ubicada en el nivel 0 del índice multi-nivel del DataFrame.

Alternativas a .drop()

Además de .drop(), existen otras formas de eliminar columnas en Pandas:

LEER:  strtok() en C: Tutorial Completo de Tokenización de Cadenas

La función .pop()

La función .pop() elimina una columna específica y la devuelve como una nueva Series. Esta función modifica el DataFrame original:

«`python

Eliminar la columna ‘ciudad’ y obtenerla como Series

columnaciudad = df.pop(‘ciudad’)
print(columna
ciudad)
print(df)
«`

La función .loc

Puedes usar .loc para seleccionar y eliminar las columnas deseadas:

«`python

Eliminar las columnas ‘edad’ y ‘ciudad’

df.drop(df.loc[:, [‘edad’, ‘ciudad’]], axis=1, inplace=True)
print(df)
«`

La función del de Python

La función del de Python también puede usarse para eliminar columnas:

«`python

Eliminar la columna ‘edad’

del df[‘edad’]
print(df)
«`

Consideraciones adicionales

Al eliminar columnas en Pandas, considera lo siguiente:

  • Copia vs. modificación «en su lugar»: Decide si deseas modificar el DataFrame original o crear una copia modificada.
  • Manejo de errores: Puedes usar errors='ignore' para evitar errores al intentar eliminar columnas inexistentes.
  • Multi-índices: Adapta el método de eliminación según la estructura del DataFrame multi-índice.
  • Optimización: Si necesitas eliminar muchas columnas, considera métodos más eficientes, como la creación de una nueva lista de columnas y usar .loc para seleccionar las que se deben mantener.

Conclusión

Eliminar columnas de DataFrames en Pandas es una operación común, y la función .drop() ofrece una forma versátil y flexible para hacerlo. Al comprender los distintos parámetros y opciones de uso de .drop(), así como las alternativas como .pop(), .loc, y la función del, puedes manejar la eliminación de columnas con precisión y eficiencia en tu flujo de trabajo de análisis de datos con Pandas.