Le metodologie con cui selezionare i dati in un dataframe possono essere molte e diverse, anche a seconda di quello che dobbiamo selezionare.
- Selezionare un valore specifico
- Selezionare una riga specifica
- Selezionare un gruppo di righe
- Selezionare tramite filtraggio dei dati
Abbiamo questo dataframe
import pandas as pd
df = pd.DataFrame({'Nome': ['Gianluca', 'Lorenzo', 'Giulio', 'Andrea'], 'Cognome':['Bianchi', 'Verdi', 'Rossi', 'Grandi']})
Nome | Cognome | |
---|---|---|
0 | Gianluca | Bianchi |
1 | Lorenzo | Verdi |
2 | Giulio | Rossi |
3 | Andrea | Grandi |
Selezionare un colonna intera
df['Nome']
0 Gianluca
1 Lorenzo
2 Giulio
3 Andrea
Name: Nome, dtype: object
Selezionare un valore con colonna ed indice
df['Nome'][2]
'Giulio'
Selezionare un riga dall’indice
Se voglio selezionare la riga con indice 2 utilizzo loc
df.loc[2]
Nome Giulio
Cognome Rossi
Name: 2, dtype: object
Filtrare i dati con iloc
Creiamo un nuovo dataframe con più colonne
d = { 'Nome' : ['Lorenzo', 'Gianluca', 'Andrea', 'Luigi', 'Paolo'],
'Eta' : [23, 45, 89, 34, 56],
'Ruolo' : ['Centrocampo', 'Attaccante', 'Difensore', 'Attaccante', 'Centrocampo']}
df = pd.DataFrame(d)
Nome | Eta | Ruolo | |
---|---|---|---|
0 | Lorenzo | 23 | Centrocampo |
1 | Gianluca | 45 | Attaccante |
2 | Andrea | 89 | Difensore |
3 | Luigi | 34 | Attaccante |
4 | Paolo | 56 | Centrocampo |
Selezionare un valore specifico on iloc
df.iloc[0,2]
'Centrocampo'
Lo 0 sta per la riga, mentre il secondo numero per la colonna. Viene recuperato ‘centrocampo’ perché la prima colonna “Nome” è 0.
Selezionare un range di righe ed il valore della colonna
df.iloc[2:4, 0]
2 Andrea
3 Luigi
Name: Nome, dtype: object
Per capire questa selezione bisogna spiegare la sintassi con i due punti, che servono per definire il range. Ovvero “Hey pandas, selezionami le righe con indice dalla 2 fino alla 4 (la riga 4 non compresa nella selezione) e di queste righe seleziona la colonna 0, che è il nome.
df.iloc[2:, 2]
2 Difensore
3 Attaccante
4 Centrocampo
Name: Ruolo, dtype: object
Una nuova sintassi per i due punti. Se non c’è il valore dopo i due punti significa “fino alla fine del dataframe”. Quindi: “Hey, selezionami dalla riga due fino alla fine e prendimi i valori della colonna 2”.
Viceversa:
df.iloc[:2, 2]
0 Centrocampo
1 Attaccante
Name: Ruolo, dtype: object
“Selezionami tutte le righe dall’inizio fino alla 2 (non compresa) e prendi i valori della colonna Ruolo”.
df.iloc[:,0]
0 Lorenzo
1 Gianluca
2 Andrea
3 Luigi
4 Paolo
Name: Nome, dtype: object
Se usiamo solo i due punti significa “Tutte le righe”. Ed è come la selezione che abbiamo visto prima df['Nome']
La notazione con i due punti possiamo utilizzarla anche sulle colonne:
df.iloc[:3,:2]
Ed otteniamo un dataframe con i filtraggi applicati
Nome | Eta | |
---|---|---|
0 | Lorenzo | 23 |
1 | Gianluca | 45 |
2 | Andrea | 89 |
“Selezionami tutte le righe dall’inizio fino a quella con indice 3 non compresa, e di queste selezionami le colonne dall’inizio fino alla 2 non compresa”
Selezionare partendo dalle ultime righe
df.iloc[-2:,:]
Nome | Eta | Ruolo | |
---|---|---|---|
3 | Luigi | 34 | Attaccante |
4 | Paolo | 56 | Centrocampo |
Per selezionare dalle ultime righe basta utilizzare il meno. Questa selezione chiede di selezionare le ultime due righe e tutte le colonne.
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!