En un anterior post vimos cómo eliminar filas de un DataFrame de Python Pandas según una condición. Vamos a ver ahora cómo eliminar columnas de tres formas diferentes, usando tanto el nombre de la columna como su posición.
0. Dataset de inicio
Partimos de un dataset con datos de observaciones astronómicas que ha sido recortado para simplificar el ejemplo:
import pandas as pd df = pd.read_excel("ejemplo.xlsx")
Se observa que tenemos un conjunto de datos de 8 variables y 9 observaciones. Vamos a comenzar a eliminar columnas.
1. Eliminar columnas usando la función del()
Con la función del() tenemos una forma sencilla y directa de eliminar una columna a partir de su nombre. Vamos a eliminar, por ejemplo, la columna 3 de nombre “Sesgo”:
del(df['Sesgo'])
El inconveniente de este método es que tenemos que eliminar las columnas una a una. Vemos otra forma.
2- Eliminar columnas usando el método drop
Con el método drop podemos especificar filas o columnas a eliminar. Eliminamos las columnas “Desv DM” y “Sesgo DM”:
df.drop(['Desv DM', 'Sesgo DM'], axis = 'columns', inplace=True)
Existe otra forma de usar el método drop, indicando directamente el nombre de la columna o columnas:
df = df.drop(columns=['Curtosis'])
De esta forma, hemos eliminado la columna “Curtosis”, aunque en este caso debemos guardar la operación o tan sólo la representaremos en pantalla.
Una tercera forma de eliminar columnas con el método drop es usando axis = 1 en lugar de inplace:
df = df.drop(['Media DM'], axis=1)
3. Eliminar columnas por su número o índice
Otra forma de usar el método drop es indicando el índice de la columna en lugar de su nombre. Vamos a eliminar las columnas de índice 1 y la de índice 3, que son las nombradas respectivamente como ‘Desv’ y ‘Curtosis DM’:
df = df.drop(df.columns[[1, 3]], axis='columns')
Como bonus track, podemos también usar el método drop para eliminar filas por índice. Por ejemplo, vamos a eliminar las dos primeras filas, las de índice 0 y 1:
df = df.drop([0, 1])