Panda loc vs iloc: qual è la differenza?


Quando si tratta di selezionare righe e colonne di un DataFrame Panda, loc e iloc sono due funzioni comunemente usate.

Ecco la sottile differenza tra le due funzioni:

  • loc seleziona righe e colonne con etichette specifiche
  • iloc seleziona righe e colonne in posizioni intere specifiche

Gli esempi seguenti mostrano come utilizzare nella pratica ciascuna funzione.

Esempio 1: come utilizzare loc in Pandas

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' assists ': [11, 8, 10, 6, 6, 5, 9, 12]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
df

	team points assists
A A 5 11
B A 7 8
C A 7 10
D A 9 6
E B 12 6
F B 9 5
G B 9 9
H B 4 12

Possiamo usare loc per selezionare righe specifiche dal DataFrame in base alle etichette dell’indice:

 #select rows with index labels 'E' and 'F'
df. loc [[' E ',' F ']]

	team points assists
E B 12 6
F B 9 5

Possiamo usare loc per selezionare righe e colonne specifiche del DataFrame in base alle loro etichette:

 #select 'E' and 'F' rows and 'team' and 'assists' columns
df. loc [[' E ', ' F '], [' team ', ' assists ']]

	team assists
E B 12
F B 9

Possiamo usare loc con l’argomento : per selezionare intervalli di righe e colonne in base alle loro etichette:

 #select 'E' and 'F' rows and 'team' and 'assists' columns
df. loc [' E ':,:' assists ']

        team points assists
E B 12 6
F B 9 5
G B 9 9
H B 4 12

Esempio 2: come utilizzare iloc in Panda

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' assists ': [11, 8, 10, 6, 6, 5, 9, 12]},
                   index=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'])

#view DataFrame
df

	team points assists
A A 5 11
B A 7 8
C A 7 10
D A 9 6
E B 12 6
F B 9 5
G B 9 9
H B 4 12

Possiamo usare iloc per selezionare righe specifiche del DataFrame in base alla loro posizione intera:

 #select rows in index positions 4 through 6 (not including 6)
df. iloc [4:6]

	team points assists
E B 12 6
F B 9 5

Possiamo usare iloc per selezionare righe e colonne specifiche del DataFrame in base alle loro posizioni nell’indice:

 #select rows in range 4 through 6 and columns in range 0 through 2
df. iloc [4:6, 0:2]

	team assists
E B 12
F B 9

Possiamo usare loc con l’argomento : per selezionare intervalli di righe e colonne in base alle loro etichette:

 #select rows from 4 through end of rows and columns up to third column
df. iloc [4: , :3]

        team points assists
E B 12 6
F B 9 5
G B 9 9
H B 4 12

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come selezionare le righe in base a più condizioni utilizzando Pandas Loc
Come selezionare le righe in base ai valori delle colonne in Pandas
Come selezionare le righe per indice in Pandas

Aggiungi un commento

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