Pandas: como selecionar linhas com base nos valores das colunas
Você pode usar qualquer um dos seguintes métodos para selecionar linhas em um DataFrame do pandas com base nos valores da coluna:
Método 1: selecionar linhas onde a coluna é igual a um valor específico
df. loc [df[' col1 '] == value]
Método 2: selecione as linhas onde o valor da coluna é encontrado na lista de valores
df. loc [df[' col1 ']. isin ([value1, value2, value3, ...])]
Método 3: selecionar linhas com base em condições de múltiplas colunas
df. loc [(df[' col1 '] == value) & (df[' col2 '] < value)]
O exemplo a seguir mostra como usar cada método com o seguinte DataFrame do pandas:
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
Método 1: selecionar linhas onde a coluna é igual a um valor específico
O código a seguir mostra como selecionar cada linha do DataFrame onde a coluna “pontos” é igual 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
Método 2: selecione as linhas onde o valor da coluna é encontrado na lista de valores
O código a seguir mostra como selecionar cada linha do DataFrame onde a coluna “pontos” é igual a 7, 9 ou 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
Método 3: selecionar linhas com base em condições de múltiplas colunas
O código a seguir mostra como selecionar cada linha do DataFrame onde a coluna “team” é igual a “B” e a coluna “points” é maior que 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
Observe que apenas as duas linhas onde time é igual a “B” e “pontos” são maiores que 8 são retornadas.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:
Como selecionar linhas por índice no Pandas
Como selecionar linhas únicas no Pandas
Como selecionar linhas onde o valor aparece em qualquer coluna no Pandas