4Geeks chosen to deliver AI education in the Bahamas alongside Harvard, Oxford, and Columbia.See more

¿Cómo hacer drop de una columna en Pandas?

By 4Geeks

Quita una o varias columnas con drop(), del o pop(), por nombre, por posición o con una regla, y evita el KeyError más común.

5 min readLast updated
Icono de eliminar una columna en pandas

¿Cómo eliminar una columna en pandas?

Respuesta corta: usa df = df.drop(columns="nombre_columna"). Para quitar varias a la vez, pasa una lista: df.drop(columns=["col1", "col2"]). drop() devuelve un DataFrame nuevo, así que guarda el resultado.

python
import pandas as pd
 
df = pd.DataFrame({
    "id": [1, 2, 3],
    "nombre": ["Ana", "Luis", "Marta"],
    "edad": [28, 34, 25],
    "tmp_a": [0, 0, 0],
    "tmp_b": [1, 1, 1],
    "notas": [None, None, None],
})
 
df = df.drop(columns="notas")
print(df.columns.tolist())
['id', 'nombre', 'edad', 'tmp_a', 'tmp_b']

Si solo quieres ver el resultado sin cambiar df, no lo guardes: df.drop(columns="notas") devuelve la tabla sin esa columna y deja df igual.

drop(), del y pop() eliminan columnas, pero cada uno funciona distinto.

5 formas de eliminar columnas en pandas

FormaEjemploCambia dfDevuelve
drop()df = df.drop(columns=["a", "b"])No, guardas el resultadoUn DataFrame nuevo
deldel df["a"]SíNada
pop()valores = df.pop("a")SíLa columna eliminada, como Serie
Seleccionar las que quedandf = df[["c", "d"]]No, guardas el resultadoUn DataFrame nuevo
drop(..., inplace=True)df.drop(columns="a", inplace=True)SíNone

drop() es la más flexible, porque acepta listas y errors="ignore". del es la más corta para una sola columna, y pop() sirve cuando además necesitas los valores.

Ejemplos para eliminar columnas en pandas

Los ejemplos parten del DataFrame original, con las columnas id, nombre, edad, tmp_a, tmp_b y notas.

Eliminar varias columnas

python
df = df.drop(columns=["tmp_a", "tmp_b"])

Eliminar una columna con del

python
del df["notas"]

del cambia df directamente y solo acepta una columna cada vez.

Sacar una columna y guardar sus valores con pop()

python
edades = df.pop("edad")
 
print(edades.tolist())     # [28, 34, 25]
print(df.columns.tolist()) # ['id', 'nombre', 'tmp_a', 'tmp_b', 'notas']

Es útil en machine learning para separar la columna objetivo del resto: y = df.pop("precio").

Quedarte solo con las columnas que necesitas

Cuando sobran muchas columnas, es más corto elegir las que se quedan:

python
df = df[["nombre", "edad"]]

Eliminar columnas por su posición

python
df.drop(columns=df.columns[[0, 3]])   # sin la primera ni la cuarta
df.iloc[:, 1:3]                       # solo las posiciones 1 y 2

Eliminar columnas que empiezan por un texto

python
df = df.loc[:, ~df.columns.str.startswith("tmp_")]
['id', 'nombre', 'edad', 'notas']

df.drop(columns=df.filter(like="tmp_").columns) hace lo mismo con las columnas que contienen tmp_ en cualquier parte del nombre.

Eliminar columnas vacías

python
df = df.dropna(axis=1, how="all")

how="all" quita solo las columnas en las que todos los valores están vacíos. Con how="any" quitarías las que tengan al menos uno.

Eliminar columnas con un solo valor

python
df = df.loc[:, df.nunique() > 1]

Las columnas con el mismo valor en todas las filas, como tmp_a y tmp_b, no aportan información a un análisis.

Eliminar columnas duplicadas

python
df = df.loc[:, ~df.columns.duplicated()]

Pasa al unir tablas o al leer archivos con encabezados repetidos.

No cargar la columna desde el archivo

Si la columna viene de un CSV, puedes no leerla: pd.read_csv("ventas.csv", usecols=["id", "nombre", "edad"]). Ahorra memoria con archivos grandes.

Carrera · Ingeniería de IA

Ya sabes limpiar columnas en pandas, ahora construye con IA

De cero a AI Engineer junior: Python, datos, agentes de IA y RAG con mentores y proyectos reales.

drop() de una columna: axis=1 o columns

python
df.drop("edad", axis=1)
df.drop(columns="edad")

Las dos líneas hacen lo mismo. Sin axis=1 ni columns, drop() busca la etiqueta en las filas y da KeyError. Por eso columns= es la forma más segura. Si también necesitas quitar filas, mira cómo usar drop() en pandas.

Elimina columnas con IA

Un asistente como ChatGPT, Claude o GitHub Copilot limpia las columnas de tu DataFrame en segundos si le das sus nombres. Estos tres prompts están listos para copiar.

1. Quita las columnas que no necesitas

Tengo un DataFrame de pandas con estas columnas: [pega df.columns.tolist()].
Para [tu objetivo, por ejemplo un análisis de ventas por mes], dime qué columnas puedo eliminar
y escribe el código con drop(columns=...).

2. Elimina columnas según una regla

Escribe el código de pandas para eliminar de df las columnas que [empiezan por X / están vacías /
tienen más del 50% de valores vacíos / tienen un solo valor]. Explícame cada paso.

3. Arregla un KeyError al eliminar una columna

Al eliminar una columna con pandas me sale este error: [pega el error]
Mi código: [pega tu código]. Mis columnas: [pega df.columns.tolist()].
Explícame la causa y dame la corrección.

Comprueba siempre el resultado con df.columns.tolist() antes de seguir trabajando con los datos.

Aprende con un mentor

De preparar datos a aplicaciones con IA

En la carrera de Ingeniería de IA de 4Geeks empiezas sin experiencia y terminas con agentes de IA y sistemas RAG en tu portafolio.

Errores comunes al eliminar columnas

Lo que vesPor qué pasaSolución
KeyError: "['Edad'] not found in axis"El nombre no coincide: mayúsculas, espacios o una errataRevisa df.columns.tolist() y limpia los nombres con df.columns = df.columns.str.strip()
KeyError con df.drop("edad")Sin columns ni axis=1, drop() busca en las filasUsa df.drop(columns="edad")
KeyError: 'notas' con delLa columna ya no existe, por ejemplo porque ejecutaste la celda dos vecesUsa df.drop(columns="notas", errors="ignore")
La columna sigue ahíNo guardaste el resultado de drop()Usa df = df.drop(columns=...)
df es NoneEscribiste df = df.drop(..., inplace=True)Quita inplace=True o quita la asignación
InvalidIndexError con del df[["a", "b"]]del solo borra una columna cada vezUsa df = df.drop(columns=["a", "b"])

Guías relacionadas

Descarga gratis

Eliminar columnas en pandas en una chuleta de 2 páginas

drop(), del, pop() y seleccionar columnas, recetas por posición, nombre, vacías o duplicadas, errores comunes y prompts para ChatGPT, Claude o Copilot. Gratis, en PDF.

Chuleta: eliminar columnas en pandas

2 páginas · PDF · 4Geeks

  • Las 5 formas de quitar columnas, comparadas
  • Recetas listas para copiar
  • Errores comunes y prompts para resolverlos con IA

Consíguela gratis

Tu PDF al instante

Preguntas frecuentes sobre eliminar columnas en pandas

¿Quieres pasar de preparar datos con pandas a construir aplicaciones con IA, con proyectos reales y mentores?

Ver la carrera de Ingeniería de IA