13.7. Processamento e Limpeza de Dados com Pandas: Filtragem de Dados

A filtragem de dados é uma etapa crucial no processamento de dados utilizando Python, especialmente com a biblioteca Pandas, que é uma ferramenta poderosa para manipulação de dados estruturados. A capacidade de filtrar eficientemente os dados permite que os analistas se concentrem em informações relevantes, reduzindo o ruído e melhorando a qualidade das análises. Neste capítulo, exploraremos as diversas técnicas de filtragem de dados com Pandas, proporcionando uma base sólida para a sua jornada analítica.

Introdução ao Pandas

Pandas é uma biblioteca de código aberto que oferece estruturas de dados e ferramentas de análise de dados de alto desempenho e fáceis de usar para a linguagem de programação Python. As duas principais estruturas de dados em Pandas são as Series (unidimensionais) e os DataFrames (bidimensionais), que podem ser pensados como arrays e tabelas, respectivamente.

Filtragem Básica de Dados

A filtragem de dados no Pandas pode ser realizada de várias maneiras, mas todas elas são baseadas na indexação e seleção de dados. O método mais básico de filtragem é usar operadores de comparação para criar máscaras booleanas, que são Series ou DataFrames onde cada valor é um booleano que indica se o elemento corresponde ao critério de filtragem.

Por exemplo, se quisermos filtrar um DataFrame para mostrar apenas as linhas onde o valor de uma coluna 'A' é maior que 10, podemos fazer o seguinte:

        
import pandas as pd

# Suponha que df seja um DataFrame existente
mask = df['A'] > 10
filtered_df = df[mask]
        
    

Este código cria uma máscara booleana (mask) onde cada posição é True se o valor correspondente na coluna 'A' for maior que 10 e False caso contrário. O DataFrame filtrado (filtered_df) conterá apenas as linhas que satisfazem essa condição.

Filtragem Avançada com Métodos de Pandas

Além dos operadores de comparação, o Pandas oferece métodos como .query(), .loc[] e .iloc[] para realizar filtragens mais complexas e avançadas.

O método .query() permite filtrar um DataFrame usando uma string de consulta, o que pode ser mais intuitivo e legível, especialmente para consultas complexas. Por exemplo:

        
filtered_df = df.query('A > 10 & B < 5')
        
    

Aqui, estamos filtrando o DataFrame para incluir apenas as linhas onde o valor na coluna 'A' é maior que 10 e o valor na coluna 'B' é menor que 5.

Os métodos .loc[] e .iloc[] são usados para filtrar por rótulos de índice e posições de índice, respectivamente. O método .loc[] é particularmente útil quando os rótulos de índice são significativos, como datas ou nomes únicos.

Por exemplo, para filtrar linhas baseadas em um intervalo de índices de rótulo:

        
filtered_df = df.loc['2018-01-01':'2018-12-31']
        
    

E para filtrar linhas e colunas usando posições de índice com .iloc[]:

        
filtered_df = df.iloc[10:20, 0:3]
        
    

Este exemplo seleciona as linhas de 10 a 19 (inclusive) e as primeiras três colunas do DataFrame.

Combinando Condições

Frequentemente, é necessário combinar múltiplas condições para filtrar dados. Isso pode ser feito usando os operadores lógicos & (e), | (ou) e ~ (não). É importante lembrar de colocar parênteses em volta de cada condição para garantir que a precedência dos operadores seja avaliada corretamente.

        
mask = (df['A'] > 10) & (df['B'] < 5)
filtered_df = df[mask]
        
    

Este código cria uma máscara booleana que só é verdadeira quando ambas as condições são satisfeitas para uma linha específica.

Usando Métodos de String e Funções Aplicadas

Pandas também oferece métodos específicos para trabalhar com texto em colunas do tipo string. Por exemplo, para filtrar linhas onde uma coluna de texto contém uma determinada substring, podemos usar o método .str.contains():

        
filtered_df = df[df['text_column'].str.contains('search_term')]
        
    

Além disso, podemos usar o método .apply() para aplicar uma função personalizada a cada elemento de uma coluna, o que pode ser usado para criar condições de filtragem mais complexas. Por exemplo:

        
def custom_filter(value):
    # Defina aqui a sua lógica de filtragem
    return value > 10

filtered_df = df[df['A'].apply(custom_filter)]
        
    

Este exemplo aplica a função custom_filter a cada elemento da coluna 'A' e filtra o DataFrame com base no retorno dessa função.

Considerações Finais

A filtragem de dados é apenas uma parte do processo de limpeza e preparação de dados, mas é uma habilidade fundamental para qualquer analista de dados. Dominar as técnicas de filtragem no Pandas permitirá que você aborde conjuntos de dados grandes e complexos com confiança, extraindo apenas as informações mais relevantes para a sua análise. Pratique essas técnicas com diferentes conjuntos de dados e desafios para aprimorar suas habilidades e tornar-se um especialista em desvendar dados com Python.

Agora responda o exercício sobre o conteúdo:

Qual dos seguintes métodos de filtragem de dados no Pandas é usado para filtrar um DataFrame utilizando uma string de consulta?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Processamento e Limpeza de Dados com Pandas: Conversão de Tipos de Dados

Próxima página do Ebook Gratuito:

55Processamento e Limpeza de Dados com Pandas: Conversão de Tipos de Dados

6 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto