Python

Como Filtrar Dados no Pandas

Escrito por Erick Faria · 3 min. >
Filtrar Dados no Pandas

Neste post, exploramos como Filtrar Dados no Pandas, uma biblioteca Python amplamente utilizada para análise de dados. Iniciamos com uma introdução ao Pandas e suas principais estruturas de dados: Series e DataFrames. Criamos um DataFrame de exemplo e demonstramos técnicas de filtragem simples utilizando condições booleanas, múltiplas condições com & e |, e o método .query(). Também cobrimos filtragem baseada em índices, valores nulos e texto. Além disso, abordamos filtragem por expressões regulares (regex) para selecionar dados com base em padrões de texto. Este guia visa fornecer uma compreensão sólida das técnicas de filtragem no Pandas.

Como Filtrar Dados no Pandas

Neste post, vamos explorar como realizar filtragem de dados no Pandas, uma biblioteca Python amplamente utilizada para análise de dados. Vamos criar um DataFrame de exemplo e, em seguida, abordar várias técnicas para filtrar dados, utilizando métodos e funções do Pandas.

Conhecendo o Pandas

Pandas é uma biblioteca poderosa e versátil, fundamental para manipulação e análise de dados em Python. Desde a sua criação em 2008, ela se tornou uma das ferramentas mais populares para cientistas de dados e analistas. O nome “Pandas” é uma referência ao termo “Panel Data”, utilizado em econometria.

Para quem está começando, o Pandas oferece duas principais estruturas de dados: as Series (unidimensionais) e os DataFrames (bidimensionais). Ambas são essenciais para manipulação de dados e permitem operações rápidas e eficientes.

Se você deseja uma introdução mais detalhada ao Pandas, confira o guia completo na documentação oficial do Pandas. Agora, vamos nos concentrar em como filtrar dados usando o Pandas.

Filtragem de Dados no Pandas

Criando um DataFrame

Antes de filtrar dados, precisamos de um DataFrame de exemplo. Vamos criar um DataFrame simples para ilustrar as técnicas de filtragem:

# Filtrar Dados no Pandas
import pandas as pd

# Filtrar Dados no Pandas
data = {
    'Nome': ['João', 'Ana', 'Carlos', 'Marta'],
    'Idade': [23, 45, 36, 41],
    'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Salvador'],
    'Salário': [5000, 7000, 8000, 6000]
}

df = pd.DataFrame(data)

Filtragem Simples Usando Condições

A maneira mais direta de filtrar dados no Pandas é usando condições booleanas. Por exemplo, para filtrar todos os registros onde a idade é maior que 30, você faria:

# Filtrar Dados no Pandas
df[df['Idade'] > 30]

Este comando retornará todas as linhas onde a condição é verdadeira.

Filtragem com Múltiplas Condições

Você pode combinar múltiplas condições usando os operadores & (e) e | (ou). Por exemplo, para filtrar registros onde a idade é maior que 30 e o salário é maior que 6000:

# Filtrar Dados no Pandas
df[(df['Idade'] > 30) & (df['Salário'] > 6000)]

Para condições “ou”:

# Filtrar Dados no Pandas
df[(df['Idade'] > 30) | (df['Salário'] > 6000)]

Filtragem Usando .query()

O método .query() oferece uma sintaxe mais legível para filtrar dados. Por exemplo, para filtrar registros onde a cidade é “São Paulo” ou “Salvador”:

# Filtrar Dados no Pandas
df.query('Cidade == "São Paulo" or Cidade == "Salvador"')

Filtragem Baseada em Índices

Também é possível filtrar dados com base em índices. Suponha que você queira filtrar as primeiras duas linhas do DataFrame:

df[:2]

Ou para selecionar linhas específicas por índice:

df.loc[[0, 2]]

Filtragem por Valores Nulos

Outra técnica útil é filtrar dados baseando-se em valores nulos. Por exemplo, para filtrar linhas onde a coluna ‘Salário’ não possui valores nulos, você pode usar:

df[df['Salário'].notna()]

Da mesma forma, para filtrar linhas onde a coluna ‘Salário’ possui valores nulos:

df[df['Salário'].isna()]

Filtragem por Texto

Você pode filtrar dados baseando-se em valores de texto. Por exemplo, para filtrar todas as linhas onde a cidade é “São Paulo”:

df[df['Cidade'] == 'São Paulo']

Para filtrar linhas onde o nome contém a letra ‘a’, você pode usar o método .str.contains:

df[df['Nome'].str.contains('a')]

Filtragem Usando Expressões Regulares

As expressões regulares (regex) são uma ferramenta poderosa para filtrar dados baseados em padrões de texto. O Pandas oferece suporte para regex através do método .str.contains(). Por exemplo, para filtrar todas as linhas onde o nome começa com a letra ‘C’:

# Filtrar Dados no Pandas
df[df['Nome'].str.contains('^C')]

Para filtrar nomes que terminam com ‘a’:

df[df['Nome'].str.contains('a$')]

Filtragem com Regex em Múltiplas Colunas

Você também pode aplicar expressões regulares em múltiplas colunas. Por exemplo, para filtrar linhas onde o nome começa com ‘C’ e a cidade termina com ‘o’:

df[df['Nome'].str.contains('^C') & df['Cidade'].str.contains('o$')]

Filtragem de Colunas Inteiras com Regex

Além de filtrar linhas, você pode usar regex para selecionar colunas que correspondem a um padrão específico. Suponha que você tenha várias colunas e queira selecionar apenas aquelas cujos nomes começam com ‘S’:

df.filter(regex='^S')

Para mais informações sobre como utilizar o Pandas para análise de dados, confira outros conteúdos no meu blog:

Considerações Finais

Espero que este guia tenha sido útil para aprender como filtrar dados no Pandas. A prática é essencial para dominar essas técnicas, então encorajo você a experimentar e aplicar esses métodos em seus próprios projetos de análise de dados.

Para aprimorar suas habilidades com o Pandas e se tornar mais eficiente na manipulação de dados, é importante também fortalecer sua compreensão em Python. Recomendamos o livro “Fundamentos em Python: Para Iniciantes em Programação e Computação”, disponível na Amazon, que oferece uma introdução abrangente ao Python.

Junte-se à nossa comunidade no Twitter e inscreva-se no nosso canal do YouTube para acessar mais tutoriais, dicas e recursos. Continue praticando e explorando novas maneiras de manipular dados com o Pandas, e fique atento para mais guias e tutoriais que compartilharemos.

Escrito por Erick Faria
Engenheiro de Dados com Ph.D. em Geografia e experiência em análise espacial e geoprocessamento. Expertise em processamento de grandes volumes de dados geoespaciais, imagens de satélite e dados de mercado, utilizando ferramentas como Spark, Databricks e Google Earth Engine. Experiência em projetos de mercado de carbono, modelos preditivos para investimentos agrícolas e liderança de projetos de dados em saúde pública. Habilidades em Python, R, SQL e diversas ferramentas de engenharia de dados. Profile