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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *