Skip to content
Tutoriales
Python
How to Drop a Column in Pandas DataFrame

Cómo eliminar una columna en un DataFrame de Pandas

Como científico de datos, una de las operaciones más comunes que realizas es la manipulación de datos en un DataFrame. Una de las tareas frecuentes que surgen en tu flujo de trabajo de procesamiento de datos es eliminar columnas que no son necesarias para el análisis. En este tutorial, veremos cómo eliminar una columna en un DataFrame de Pandas. Cubriremos diferentes métodos para eliminar columnas basadas en el nombre de la columna, el índice y varias columnas.

¿Quieres crear rápidamente visualizaciones de datos a partir de Dataframe de Pandas de Python sin código?

** PyGWalker ** es una biblioteca de Python para análisis de datos exploratorios con visualización. PyGWalker (opens in a new tab) puede simplificar tu flujo de trabajo de análisis de datos y visualización de datos de Notebook de Jupyter, convirtiendo tu DataFrame de pandas (y DataFrame de polares) en una interfaz de usuario similar a Tableau para la exploración visual.

PyGWalker para visualización de datos (opens in a new tab)

Descripción general del DataFrame de Pandas

Antes de profundizar en los detalles de la eliminación de columnas, veamos una descripción general del DataFrame de Pandas.

Un DataFrame es una estructura de datos en forma de tabla bidimensional con filas y columnas. Cada columna en un DataFrame es una serie. Una serie es una estructura de datos unidimensional que contiene una matriz de valores con una etiqueta llamada índice. Además, un DataFrame puede tener índices de fila y columna para un acceso rápido y eficiente a los datos.

El DataFrame de Pandas es una herramienta poderosa para manejar y manipular datos en Python. Te permite realizar análisis de datos complejos, limpieza de datos, transformación de datos y tareas de visualización de datos.

Eliminación de una columna en un DataFrame de Pandas

Ahora comencemos con el proceso de eliminar una columna en un DataFrame de Pandas. Hay varias formas de eliminar una columna en un DataFrame, dependiendo del requerimiento. Veremos algunos de los métodos populares a continuación.

Eliminar una columna usando el método drop

El método más fácil para eliminar una columna de un DataFrame es usando el método drop. Puedes usar el método drop con el parámetro axis = 1 para indicar que deseas eliminar una columna.

# crear un DataFrame de ejemplo
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# eliminar la columna 'city'
df = df.drop ('city', axis = 1)
print (df.head ())

Salida:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

En el ejemplo anterior, creamos un DataFrame de ejemplo con tres columnas llamadas name, age y city. Usamos el método drop con el parámetro axis = 1 para eliminar la columna city. Luego, imprimimos el DataFrame actualizado que solo tiene dos columnas, name y age.

Eliminar una columna usando el método de subconjunto

Otra forma de eliminar una columna de un DataFrame es usar el método de subconjunto [] con la declaración del. La declaración del elimina la columna directamente del objeto DataFrame.

# crear un DataFrame de ejemplo
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# eliminar la columna 'city'
del df ['city']
print (df.head ())

Salida:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

En el ejemplo anterior, creamos un DataFrame de ejemplo con tres columnas llamadas name, age y city. Usamos el método de subconjunto [] con la declaración del para eliminar la columna city. Luego, imprimimos el DataFrame actualizado que solo contiene dos columnas, name y age.### Eliminar varias columnas

A veces es necesario eliminar varias columnas de un DataFrame. Se puede utilizar el método drop con una lista de nombres de columna para eliminar varias columnas.

# crear un DataFrame de ejemplo
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['Nueva York', 'París', 'Londres', 'Tokio'], 'occupation': ['Ingeniero', 'Médico', 'Artista', 'Abogado']}
df = pd.DataFrame(data)
# eliminar las columnas 'city' y 'occupation'
df = df.drop(['city', 'occupation'], axis=1)
print(df.head())

Salida:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

En el ejemplo anterior, creamos un DataFrame de ejemplo con cuatro columnas llamadas name, age, city y occupation. Utilizamos el método drop con una lista de nombres de columna para eliminar las columnas city y occupation. Luego imprimimos el DataFrame actualizado que solo tiene dos columnas, name y age.

Eliminar columnas utilizando un índice de columna

También se puede eliminar una columna de un DataFrame utilizando el índice de la columna. Para hacer esto, se puede utilizar el método drop con el parámetro columns y especificar el índice de la columna a eliminar.

# crear un DataFrame de ejemplo
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['Nueva York', 'París', 'Londres', 'Tokio']}
df = pd.DataFrame(data)
# eliminar la columna en el índice 2, es decir, 'city'
df = df.drop(df.columns[2], axis=1)
print(df.head())

Salida:

     name  age
0    Alex   20
1     Bob   25
2  Clarke   19
3   David   18

En el ejemplo anterior, creamos un DataFrame de ejemplo con tres columnas llamadas name, age y city. Utilizamos el método drop con el parámetro columns y especificamos el índice de la columna a eliminar, es decir, 2. Luego imprimimos el DataFrame actualizado que solo tiene dos columnas, name y age.

Eliminar columnas basadas en una condición

También se pueden eliminar columnas en función de algunas condiciones utilizando el método drop. Por ejemplo, se pueden eliminar todas las columnas que tengan todos los valores NaN.

# crear un DataFrame de ejemplo con una columna con todos los valores NaN
import pandas as pd
import numpy as np
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': [np.nan, np.nan, np.nan, np.nan], 'occupation': ['Ingeniero', 'Médico', 'Artista', 'Abogado']}
df = pd.DataFrame(data)
# eliminar las columnas que tienen todos los valores NaN
df = df.dropna(how='all', axis=1)
print(df.head())

Salida:

     name  age  occupation
0    Alex   20    Ingeniero
1     Bob   25      Médico
2  Clarke   19      Artista
3   David   18      Abogado

En el ejemplo anterior, creamos un DataFrame de ejemplo con cuatro columnas llamadas name, age, city y occupation. Establecimos los valores en la columna city en NaN. Utilizamos el método dropna con el parámetro how='all' y axis=1 para eliminar las columnas que tienen todos los valores NaN. Luego imprimimos el DataFrame actualizado que solo tiene tres columnas, name, age y occupation.

Conclusión

Eliminar una columna de un DataFrame de Pandas es una operación esencial que debe dominar como científico de datos. En este tutorial, cubrimos diferentes métodos para eliminar columnas en función del nombre de la columna, el índice y varias columnas. Esperamos que este tutorial le haya ayudado a optimizar su flujo de trabajo y mejorar sus operaciones de datos con DataFrame de Pandas.

Preguntas frecuentes

  1. ¿Cómo eliminar una columna en un DataFrame de Python?

    Para eliminar una columna en un DataFrame de Python, puedes usar el método drop() y especificar el nombre de la columna junto con el parámetro axis establecido en 1. Esto eliminará la columna especificada del DataFrame. Alternativamente, puedes usar la palabra clave del seguida del nombre de la columna para eliminar la columna en su lugar.

  2. ¿Se pueden eliminar múltiples columnas simultáneamente en un DataFrame de Python?

    Sí, se pueden eliminar múltiples columnas simultáneamente en un DataFrame de Python. Puedes pasar una lista de nombres de columnas al método drop() o usar el método drop() varias veces con diferentes nombres de columnas especificados cada vez. Esto eliminará todas las columnas especificadas del DataFrame.

  3. ¿Es posible eliminar columnas basadas en ciertas condiciones en un DataFrame de Python?

    Sí, es posible eliminar columnas basadas en ciertas condiciones en un DataFrame de Python. Puedes usar indexación booleana o el indexador loc para seleccionar las columnas que cumplen con la condición deseada y luego usar el método drop() para eliminar esas columnas del DataFrame. Esto te permite eliminar selectivamente columnas basadas en criterios específicos.