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