Panda: come selezionare le righe in base ai valori delle colonne


È possibile utilizzare uno dei seguenti metodi per selezionare le righe in un DataFrame panda in base ai valori delle colonne:

Metodo 1: selezionare le righe in cui la colonna è uguale a un valore specifico

 df. loc [df[' col1 '] == value]

Metodo 2: selezionare le righe in cui si trova il valore della colonna nell’elenco dei valori

 df. loc [df[' col1 ']. isin ([value1, value2, value3, ...])]

Metodo 3: selezionare le righe in base a più condizioni di colonna

 df. loc [(df[' col1 '] == value) & (df[' col2 '] < value)]

L’esempio seguente mostra come utilizzare ciascun metodo con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12],
                   ' blocks ': [4, 7, 7, 6, 5, 8, 9, 10]})

#view DataFrame
df

	team points rebound blocks
0 A 5 11 4
1 To 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5
5 C 9 5 8
6 C 9 9 9
7 C 4 12 10

Metodo 1: selezionare le righe in cui la colonna è uguale a un valore specifico

Il codice seguente mostra come selezionare ciascuna riga del DataFrame in cui la colonna “punti” è uguale a 7:

 #select rows where 'points' column is equal to 7
df. loc [df[' points '] == 7]

	team points rebound blocks
1 To 7 8 7
2 B 7 10 7

Metodo 2: selezionare le righe in cui si trova il valore della colonna nell’elenco dei valori

Il codice seguente mostra come selezionare ciascuna riga del DataFrame in cui la colonna “punti” è uguale a 7, 9 o 12:

 #select rows where 'points' column is equal to 7
df. loc [df[' points ']. isin ([7, 9, 12])]

        team points rebound blocks
1 To 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5
5 C 9 5 8
6 C 9 9 9

Metodo 3: selezionare le righe in base a più condizioni di colonna

Il codice seguente mostra come selezionare ciascuna riga del DataFrame in cui la colonna “team” è uguale a “B” e la colonna “punti” è maggiore di 8:

 #select rows where 'team' is equal to 'B' and points is greater than 8
df. loc [(df[' team '] == ' B ') & (df[' points '] > 8)]

	team points rebound blocks
3 B 9 6 6
4 B 12 6 5

Tieni presente che vengono restituite solo le due righe in cui la squadra è uguale a “B” e i “punti” sono maggiori di 8.

Risorse addizionali

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

Come selezionare le righe per indice in Pandas
Come selezionare singole righe in Panda
Come selezionare le righe in cui il valore appare in qualsiasi colonna in Pandas

Aggiungi un commento

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