Quando trabalhamos com dados, seja em uma planilha de Excel ou em um script de programação, frequentemente precisamos filtrar informações para focar apenas no que é relevante para nossa análise. No Excel, você pode estar acostumado a usar filtros para esconder linhas que não atendem a certos critérios. No mundo da programação com Python, a biblioteca Pandas oferece ferramentas poderosas para filtrar dados em tabelas, conhecidas como DataFrames.
Seu primeiro projeto Python – curso grátis com certificado!
Vá do zero ao primeiro projeto em apenas 2 horas com o curso Python para Iniciantes.
Comece agoraNeste tutorial, vamos aprender como aplicar filtros em DataFrames usando o Pandas, de uma forma que até quem nunca programou vai entender. Vamos lá?
O que é o Pandas?
Pandas é uma biblioteca do Python que fornece estruturas de dados e ferramentas de análise de dados. Imagine que é como uma versão superpoderosa do Excel dentro do Python. Com ela, você pode realizar diversas operações em tabelas de dados de forma rápida e eficiente.
Filtrando Dados com Pandas
Para começar, vamos importar a biblioteca Pandas. Você pode fazer isso executando o seguinte código:
import pandas as pd
Criando um DataFrame
Antes de filtrar, precisamos de dados para trabalhar. Vamos criar um DataFrame simples, que é como uma tabela do Excel, diretamente no nosso código:
# Criando um DataFrame
dados = {
'Nome': ['Ana', 'João', 'Maria', 'Pedro'],
'Idade': [23, 35, 22, 29],
'Cidade': ['Rio de Janeiro', 'São Paulo', 'Salvador', 'Curitiba']
}
df = pd.DataFrame(dados)
Agora, temos uma tabela com nomes, idades e cidades, conforme a imagem abaixo:
Aplicando Filtros
Suponha que queremos filtrar apenas as pessoas que têm mais de 25 anos. No Pandas, fazemos isso da seguinte maneira:
# Filtrando pessoas com mais de 25 anos
filtro_idade = df['Idade'] > 25
df_filtrado = df[filtro_idade]
O df_filtrado
agora contém apenas as linhas onde a condição (Idade > 25) é verdadeira:
print(df_filtrado)
# output:
# Nome Idade Cidade
# 1 João 35 São Paulo
# 3 Pedro 29 Curitiba
Filtrando com Múltiplas Condições
E se quisermos filtrar pessoas com mais de 25 anos que moram em São Paulo? Neste caso, vamos querer combinar filtros com os operadores AND
( &
), OR
( |
) e NOT
( ~
).
Filtrando com o operador &
Podemos combinar condições facilmente usando o operador &
, pegando apenas valores que condizem a múltiplas condições ao mesmo tempo:
# Filtrando pessoas com mais de 25 anos E que moram em São Paulo
filtro_idade = df['Idade'] > 25
filtro_cidade = df['Cidade'] == 'São Paulo'
filtro_and = filtro_idade & filtro_cidade
df_filtrado_and = df[filtro_and]
Agora, df_filtrado_and
contém apenas as linhas que satisfazem ambas as condições:
print(df_filtrado_and)
# output:
# Nome Idade Cidade
# 1 João 35 São Paulo
Existem também os operadores correspondentes para as operações de tipo OR (operador |
) e NOT (operador ~
).
Filtrando com o operador |
O operador |
é usado para filtros alternativos: se qualquer condição for verdadeira, o valor aparece no filtro resultante:
# Filtrando pessoas com mais de 25 anos, OU que moram em São Paulo
filtro_idade = df['Idade'] > 25
filtro_cidade = df['Cidade'] == 'São Paulo'
filtro_or = filtro_idade | filtro_cidade
df_filtrado_or = df[filtro_or]
Agora, df_filtrado_or
inclui indivíduos que condizem a pelo menos uma das condições: ou moram em São Paulo, ou possuem mais de 25 anos:
print(df_filtrado_or)
# output:
# Nome Idade Cidade
# 1 João 35 São Paulo
# 3 Pedro 29 Curitiba
Filtrando com o operador ~
O operador ~
é usado para pegar os valores opostos de um filtro:
# Filtrando pessoas que NÃO moram em São Paulo
filtro_cidade = df['Cidade'] == 'São Paulo'
filtro_not = ~ filtro_idade
df_filtrado_not = df[filtro_not]
Dessa forma, df_filtrado_not
inclui apenas pessoas que não moram em São Paulo:
print(df_filtrado_not)
# output:
# Nome Idade Cidade
# 0 Ana 23 Rio de Janeiro
# 2 Maria 22 Salvador
Usando o Método .loc
O método .loc
é uma forma mais avançada de filtrar dados. Com ele, você pode especificar também as colunas que deseja filtrar, além das linhas. Para isso, passamos as colunas como um segundo valor após a vírgula:
# Filtrando e selecionando apenas as colunas 'Nome' e 'Cidade'
filtro_idade = df['Idade'] > 25
colunas_interesse = ['Nome', 'Cidade']
df_filtrado_loc = df.loc[filtro_idade, colunas_interesse]
df_filtrado_loc
agora contém apenas indivíduos com mais de 25 anos, e apenas as colunas “Nome” e “Cidade”:
print(df_filtrado_loc)
# output:
# Nome Cidade
# 1 João São Paulo
# 3 Pedro Curitiba
Conclusão
Filtrar dados com Pandas é uma habilidade essencial para qualquer pessoa que trabalha com análise de dados. Com a prática, você verá que é uma ferramenta muito mais flexível e poderosa do que os filtros tradicionais do Excel. E o melhor de tudo, você não precisa ser um expert em programação para começar a usar!
Experimente criar seus próprios DataFrames e aplicar diferentes filtros para ver o que você pode descobrir sobre seus dados. Com o tempo, você se sentirá cada vez mais confortável com essas operações e poderá realizar análises de dados mais complexas com facilidade.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários