Como selecionar linhas de um DataFrame do Pandas com base em valores de uma coluna?

Adriano Soares
5 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com dados em Python, a biblioteca Pandas é uma ferramenta poderosa para manipulação e análise de dados. Uma tarefa comum é selecionar linhas com base nos valores de uma coluna específica, de maneira semelhante à instrução SELECT em SQL. Neste artigo, exploraremos como realizar essa operação usando o Pandas.

Selecionando Linhas com Base em uma Única Condição

Para selecionar linhas onde o valor da coluna é igual a um valor específico, você pode usar o operador ==. Aqui está um exemplo simples:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Idade': [24, 27, 22, 23]
})

# Selecionar linhas onde 'Nome' é 'Alice'
linhas_selecionadas = df.loc[df['Nome'] == 'Alice']
print(linhas_selecionadas)
Testar

Isso produzirá a saída:

    Nome  Idade
0  Alice     24

Selecionando Linhas com Base em Múltiplos Valores

Se você deseja selecionar linhas onde o valor da coluna está em uma lista de valores, use o método isin:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Idade': [24, 27, 22, 23]
})

# Selecionar linhas onde 'Nome' é 'Alice' ou 'Bob'
linhas_selecionadas = df.loc[df['Nome'].isin(['Alice', 'Bob'])]
print(linhas_selecionadas)
Testar

Isso produzirá a saída:

    Nome  Idade
0  Alice     24
1    Bob     27

Combinando Múltiplas Condições

Você pode combinar múltiplas condições usando o operador & (E). Lembre-se de usar parênteses para agrupar as condições:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Idade': [24, 27, 22, 23]
})

# Selecionar linhas onde 'Idade' é maior ou igual a 23 e menor ou igual a 24
linhas_selecionadas = df.loc[(df['Idade'] >= 23) & (df['Idade'] <= 24)]
print(linhas_selecionadas)
Testar

Isso produzirá a saída:

    Nome  Idade
0  Alice     24
3  David     23

Selecionando Linhas com Condições de Desigualdade

Para selecionar linhas onde o valor da coluna não é igual a um valor específico, use o operador !=:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Idade': [24, 27, 22, 23]
})

# Selecionar linhas onde 'Nome' não é 'Alice'
linhas_selecionadas = df.loc[df['Nome'] != 'Alice']
print(linhas_selecionadas)
Testar

Isso produzirá a saída:

      Nome  Idade
1      Bob     27
2  Charlie     22
3    David     23

Usando ~ com isin para Negação

Se você deseja selecionar linhas onde o valor da coluna não está em uma lista de valores, use o operador ~ para negar a série booleana retornada por isin:

import pandas as pd

# DataFrame de Exemplo
df = pd.DataFrame({
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Idade': [24, 27, 22, 23]
})

# Selecionar linhas onde 'Nome' não é 'Alice' ou 'Bob'
linhas_selecionadas = df.loc[~df['Nome'].isin(['Alice', 'Bob'])]
print(linhas_selecionadas)
Testar

Isso produzirá a saída:

      Nome  Idade
2  Charlie     22
3    David     23

Resumo

Neste artigo, cobrimos como selecionar linhas de um DataFrame do Pandas com base nos valores das colunas. Vimos como usar operadores de igualdade e desigualdade, como verificar múltiplos valores com isin e como combinar múltiplas condições. Essas técnicas são essenciais para filtrar dados e são análogas à cláusula WHERE em SQL.

Lembre-se de usar loc para acessar um grupo de linhas e colunas por rótulos ou um array booleano, e sempre use parênteses para agrupar corretamente as condições ao combiná-las com operadores lógicos como &. Com essas ferramentas, você pode efetivamente consultar e manipular seus dados no Pandas.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial