Data Analysis

Dominando a Filtragem de DataFrames Pandas: Um Guia Completo

Spread the love

Pandas é uma poderosa biblioteca Python para manipulação e análise de dados. Filtrar linhas de DataFrame com base em valores de coluna é uma tarefa fundamental no processamento de dados. Este artigo explora várias técnicas para filtrar DataFrames Pandas de forma eficiente, cobrindo cenários simples a complexos.

Sumário

Filtragem Básica: Coluna Única, Condição Única

A forma mais simples de filtragem envolve selecionar linhas onde uma coluna específica corresponde a um valor particular. Isso é alcançado usando indexação booleana.


import pandas as pd

# DataFrame de exemplo
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'City': ['Nova York', 'Londres', 'Paris', 'Tóquio']}
df = pd.DataFrame(data)

# Seleciona linhas onde City é 'Londres'
london_residents = df[df['City'] == 'Londres']
print(london_residents)

Este código cria uma máscara booleana (df['City'] == 'Londres') que é True onde a coluna ‘City’ é ‘Londres’ e False caso contrário. Esta máscara é então usada para indexar o DataFrame, selecionando apenas as linhas onde a máscara é True.

Negação: Selecionando Linhas Que Não Correspondem a uma Condição

Para selecionar linhas onde uma coluna não contém um valor específico, negue a condição booleana usando o operador !=.


# Seleciona linhas onde City NÃO é 'Londres'
not_london_residents = df[df['City'] != 'Londres']
print(not_london_residents)

Comparações Numéricas: Maior Que, Menor Que, etc.

Para colunas numéricas, use operadores de comparação (>, <, >=, <=) para filtrar com base em intervalos de valores.


# Seleciona linhas onde Age é maior que 25
older_than_25 = df[df['Age'] > 25]
print(older_than_25)

# Seleciona linhas onde Age é menor ou igual a 25
younger_than_or_equal_to_25 = df[df['Age'] <= 25]
print(younger_than_or_equal_to_25)

Combinando Condições: Operações AND e OR

Filtre com base em vários valores de coluna combinando condições booleanas com operadores lógicos & (AND) e | (OR). Envolva cada condição em parênteses.


# Seleciona linhas onde City é 'Londres' E Age é maior que 25
london_and_older = df[(df['City'] == 'Londres') & (df['Age'] > 25)]
print(london_and_older)

# Seleciona linhas onde City é 'Londres' OU Age é maior que 25
london_or_older = df[(df['City'] == 'Londres') | (df['Age'] > 25)]
print(london_or_older)

Filtragem Avançada: Múltiplas Colunas e Lógica Complexa

Para cenários complexos, o método query() oferece melhor legibilidade.


# Usando query() para melhor legibilidade
complex_filter = df.query('(City == "Londres" and Age > 25) or (Age < 23)')
print(complex_filter)

Filtragem Eficiente com isin()

O método isin() fornece uma maneira concisa de verificar se os valores estão contidos em uma lista.


cities_to_include = ['Londres', 'Paris']
filtered_df = df[df['City'].isin(cities_to_include)]
print(filtered_df)

Este artigo demonstrou várias técnicas para filtrar DataFrames em Pandas. A escolha do método certo depende da complexidade dos seus critérios de filtragem. Lembre-se de usar parênteses corretamente com operadores lógicos para garantir resultados precisos.

Deixe um comentário

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