Cómo eliminar una columna en un DataFrame de Pandas
Updated on
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.
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
-
¿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ámetroaxis
establecido en 1. Esto eliminará la columna especificada del DataFrame. Alternativamente, puedes usar la palabra clavedel
seguida del nombre de la columna para eliminar la columna en su lugar. -
¿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étododrop()
varias veces con diferentes nombres de columnas especificados cada vez. Esto eliminará todas las columnas especificadas del DataFrame. -
¿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étododrop()
para eliminar esas columnas del DataFrame. Esto te permite eliminar selectivamente columnas basadas en criterios específicos.