Come selezionare le colonne per indice in un pandas dataframe
Spesso potresti voler selezionare le colonne in un DataFrame panda in base al loro valore di indice.
Se desideri selezionare colonne in base all’indicizzazione di numeri interi, puoi utilizzare la funzione .iloc .
Se desideri selezionare le colonne in base all’indicizzazione delle etichette, puoi utilizzare la funzione .loc .
Questo tutorial fornisce un esempio di come utilizzare ciascuna di queste funzioni nella pratica.
Esempio 1: selezionare le colonne in base all’indicizzazione dei numeri interi
Il codice seguente mostra come creare un DataFrame panda e utilizzare .iloc per selezionare la colonna con un valore di indice intero pari a 3 :
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B'], ' points ': [11, 7, 8, 10, 13, 13], ' assists ': [5, 7, 7, 9, 12, 9], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame df team points assists rebounds 0 A 11 5 11 1 To 7 7 8 2 to 8 7 10 3 B 10 9 6 4 B 13 12 6 5 B 13 9 5 #select column with index position 3 df. iloc [:, 3] 0 11 1 8 2 10 3 6 4 6 5 5 Name: rebounds, dtype: int64
Possiamo usare una sintassi simile per selezionare più colonne:
#select columns with index positions 1 and 3
df. iloc [:, [1, 3]]
rebound points
0 11 11
1 7 8
2 8 10
3 10 6
4 13 6
5 13 5
Oppure potremmo selezionare tutte le colonne in un intervallo:
#select columns with index positions in range 0 through 3
df. iloc [:, 0:3]
team points assists
0 to 11 5
1 To 7 7
2 to 8 7
3 B 10 9
4 B 13 12
5 B 13 9
Esempio 2: selezionare le colonne in base all’indicizzazione delle etichette
Il codice seguente mostra come creare un DataFrame panda e utilizzare .loc per selezionare la colonna con un’etichetta di indice di “rimbalzi” :
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B'], ' points ': [11, 7, 8, 10, 13, 13], ' assists ': [5, 7, 7, 9, 12, 9], ' rebounds ': [11, 8, 10, 6, 6, 5]}) #view DataFrame df team points assists rebounds 0 A 11 5 11 1 To 7 7 8 2 to 8 7 10 3 B 10 9 6 4 B 13 12 6 5 B 13 9 5 #select column with index label 'rebounds' df. loc [:, ' rebounds '] 0 11 1 8 2 10 3 6 4 6 5 5 Name: rebounds, dtype: int64
Possiamo utilizzare una sintassi simile per selezionare più colonne con etichette di indice diverse:
#select the columns with index labels 'points' and 'rebounds'
df. loc [:,[' points ',' rebounds ']]
rebound points
0 11 11
1 7 8
2 8 10
3 10 6
4 13 6
5 13 5
Oppure potremmo selezionare tutte le colonne in un intervallo:
#select columns with index labels between 'team' and 'assists'
df. loc [:, ' team ':' assists ']
team points assists
0 to 11 5
1 To 7 7
2 to 8 7
3 B 10 9
4 B 13 12
5 B 13 9
Correlati: Pandas loc vs iloc: qual è la differenza?
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:
Come raggruppare per indice in un Pandas DataFrame
Come selezionare le righe per indice in un Pandas DataFrame
Come ottenere i numeri di riga in un Pandas DataFrame
Come rimuovere la colonna dell’indice in un Pandas DataFrame