Eliminare le colonne per indice in Pandas DataFrame

Manav Narula 26 aprile 2021
Eliminare le colonne per indice in Pandas DataFrame

I DataFrame possono essere molto grandi e possono contenere centinaia di righe e colonne. È necessario essere esperti nelle operazioni di manutenzione di base di un DataFrame, come l’eliminazione di più colonne. Possiamo usare il metodo dataframe.drop() per eliminare colonne o righe dal DataFrame a seconda dell’axis specificato, 0 per le righe e 1 per le colonne. Identifica gli elementi da rimuovere in base ad alcune etichette. Ad esempio, elimineremo la colonna 'a' dal seguente DataFrame.

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

print(df)

df.drop(["a"], axis=1, inplace=True)

print(df)

Produzione:

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6
   b   c   d
0  6   7   8
1  9  12  14
2  8  10   6

Si noti l’uso del parametro inplace nella funzione di rilascio. Con il parametro inplace impostato come True, le colonne vengono rimosse dal DataFrame originale; in caso contrario, viene restituita una copia dell’originale.

Nel nostro esempio, abbiamo rimosso la colonna 'a', ma dobbiamo passare il nome dell’etichetta alla funzione dataframe.drop(). Quando si ha a che fare con set di dati di grandi dimensioni, è necessario gestire tali attività per molte colonne contemporaneamente e utilizzando gli indici di colonna invece dei loro nomi.

Possiamo ottenere ciò utilizzando il metodo dataframe.columns(), che restituisce tutte le colonne di un DataFrame e passa le etichette di colonna richieste utilizzando i loro indici alla funzione dataframe.drop(). Il seguente frammento di codice spiega come possiamo farlo.

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df.drop(df.columns[[1, 2]], axis=1, inplace=True)

print(df)

Produzione:

    a   d
0  10   8
1   1  14
2   5   6

Elimina le colonne il cui indice è 1 o 2.

Possiamo anche evitare di usare il parametro axis menzionando semplicemente il parametro columns nella funzione dataframe.drop(), che indica automaticamente che le colonne devono essere eliminate. Esempio:

import pandas as pd

df = pd.DataFrame(
    [[10, 6, 7, 8], [1, 9, 12, 14], [5, 8, 10, 6]], columns=["a", "b", "c", "d"]
)

df.drop(columns=df.columns[[1, 2]], inplace=True)

print(df)

Produzione:

    a   d
0  10   8
1   1  14
2   5   6
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Pandas DataFrame