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']})
NomeCognome
0GianlucaBianchi
1LorenzoVerdi
2GiulioRossi
3AndreaGrandi

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)
NomeEtaRuolo
0Lorenzo23Centrocampo
1Gianluca45Attaccante
2Andrea89Difensore
3Luigi34Attaccante
4Paolo56Centrocampo

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

NomeEta
0Lorenzo23
1Gianluca45
2Andrea89

“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:,:]
NomeEtaRuolo
3Luigi34Attaccante
4Paolo56Centrocampo

Per selezionare dalle ultime righe basta utilizzare il meno. Questa selezione chiede di selezionare le ultime due righe e tutte le colonne.

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *