Come eliminare una colonna in un dataframe in Pandas

Vediamo come eliminare una o più colonne da un DataFrame Pandas. Ci sono molteplici modi per cancellare una colonna o più colonne da un DataFrame.

Per il nostro esempio, iniziamo creando un semplice Dataframe.

# Importa pandas
import pandas as pd
# Crea un dizionario con cinque campi
data = {
    'A':['A1', 'A2', 'A3', 'A4', 'A5'],
    'B':['B1', 'B2', 'B3', 'B4', 'B5'],
    'C':['C1', 'C2', 'C3', 'C4', 'C5'],
    'D':['D1', 'D2', 'D3', 'D4', 'D5'],
    'E':['E1', 'E2', 'E3', 'E4', 'E5'] } 
# Converti il dizionario in un DataFrame
df = pd.DataFrame(data)
df

Output:


Metodo 1: Eliminare le colonne da un DataFrame utilizzando il metodo drop()

Rimuovere una singola colonna

# Importa pandas
import pandas as pd
# Crea un dizionario con cinque campi
data = {
    'A':['A1', 'A2', 'A3', 'A4', 'A5'],
    'B':['B1', 'B2', 'B3', 'B4', 'B5'],
    'C':['C1', 'C2', 'C3', 'C4', 'C5'],
    'D':['D1', 'D2', 'D3', 'D4', 'D5'],
    'E':['E1', 'E2', 'E3', 'E4', 'E5'] } 
# Converti il dizionario in un DataFrame
df = pd.DataFrame(data)
# Rimuovi la colonna "A"
df.drop(['A'], axis = 1) 

Output:


Rimuovere più di una colonna

# Importa pandas
import pandas as pd
# Crea un dizionario con cinque campi
data = {
    'A':['A1', 'A2', 'A3', 'A4', 'A5'],
    'B':['B1', 'B2', 'B3', 'B4', 'B5'],
    'C':['C1', 'C2', 'C3', 'C4', 'C5'],
    'D':['D1', 'D2', 'D3', 'D4', 'D5'],
    'E':['E1', 'E2', 'E3', 'E4', 'E5'] } 
# Converti il dizionario in un DataFrame
df = pd.DataFrame(data)
# Rimuovi le colonne "C" e "D"
df.drop(['C', 'D'], axis = 1)

Output:


Metodo 2: Eliminare le colonne da un DataFrame utilizzando iloc[] e il metodo drop()

Rimuovere tutte le colonne tra una colonna specifica e un'altra colonna

# Importa pandas
import pandas as pd
# Crea un dizionario con cinque campi
data = {
    'A':['A1', 'A2', 'A3', 'A4', 'A5'],
    'B':['B1', 'B2', 'B3', 'B4', 'B5'],
    'C':['C1', 'C2', 'C3', 'C4', 'C5'],
    'D':['D1', 'D2', 'D3', 'D4', 'D5'],
    'E':['E1', 'E2', 'E3', 'E4', 'E5'] } 
# Converti il dizionario in un DataFrame
df = pd.DataFrame(data)
# Rimuovi tutte le colonne tra la colonna index 1 e la colonna index 3
df.drop(df.iloc[:, 1:3], inplace = True, axis = 1)

Output:


Metodo 3: Eliminare le colonne da un DataFrame utilizzando loc[] e il metodo drop()

Rimuovere tutte le colonne tra una colonna dal nome specifico e un' altra colonna

# Importa pandas
import pandas as pd
# Crea un dizionario con cinque campi
data = {
    'A':['A1', 'A2', 'A3', 'A4', 'A5'],
    'B':['B1', 'B2', 'B3', 'B4', 'B5'],
    'C':['C1', 'C2', 'C3', 'C4', 'C5'],
    'D':['D1', 'D2', 'D3', 'D4', 'D5'],
    'E':['E1', 'E2', 'E3', 'E4', 'E5'] } 
# Converti il dizionario in un DataFrame
df = pd.DataFrame(data)
# Rimuovi tutte le colonne tra la colonna "B" e la "D"
df.drop(df.loc[:, 'B':'D'].columns, axis = 1)  

Output:

Nota: a differenza di loc(), iloc() esclude l'ultima colonna dal range


Metodo 4: Eliminare le colonne da un DataFrame utilizzando il metodo iterativo

Rimuovere tutte le colonne tra una colonna dal nome specifico e un' altra colonna

# Importa pandas
import pandas as pd
# Crea un dizionario con cinque campi
data = {
    'A':['A1', 'A2', 'A3', 'A4', 'A5'],
    'B':['B1', 'B2', 'B3', 'B4', 'B5'],
    'C':['C1', 'C2', 'C3', 'C4', 'C5'],
    'D':['D1', 'D2', 'D3', 'D4', 'D5'],
    'E':['E1', 'E2', 'E3', 'E4', 'E5'] } 
# Converti il dizionario in un DataFrame
df = pd.DataFrame(data)
# Rimuovi la colonna "A"
for col in df.columns:
        if 'A' in col:
            del df[col]
df

Output: