Como Utilizar Filtros no Pandas: Um Guia Completo
Filtrar dados no Pandas é uma habilidade essencial para análise de dados. Neste tutorial, você aprenderá como aplicar filtros de forma eficiente para extrair informações relevantes de DataFrames.
📌 Pré-requisitos
Antes de começar, certifique-se de ter o Pandas instalado:
pip install pandas
Agora, importe a biblioteca:
import pandas as pd
🔹 1. Criando um DataFrame de Exemplo
Vamos criar um DataFrame para ilustrar os filtros:
dados = {
"Nome": ["Ana", "Bruno", "Carlos", "Daniela", "Eduardo"],
"Idade": [25, 32, 40, 29, 35],
"Cidade": ["São Paulo", "Rio de Janeiro", "Belo Horizonte", "Curitiba", "Porto Alegre"],
"Salário": [5000, 7000, 10000, 6500, 8000]
}
df = pd.DataFrame(dados)
print(df)
Saída:
Nome Idade Cidade Salário
0 Ana 25 São Paulo 5000
1 Bruno 32 Rio de Janeiro 7000
2 Carlos 40 Belo Horizonte 10000
3 Daniela 29 Curitiba 6500
4 Eduardo 35 Porto Alegre 8000
🔹 2. Filtrando por uma Condição Simples
Queremos selecionar apenas as pessoas com idade superior a 30 anos:
filtro = df["Idade"] > 30
df_filtrado = df[filtro]
print(df_filtrado)
Saída:
Nome Idade Cidade Salário
1 Bruno 32 Rio de Janeiro 7000
2 Carlos 40 Belo Horizonte 10000
4 Eduardo 35 Porto Alegre 8000
🔹 3. Filtrando por Múltiplas Condições (AND e OR)
🔹 Filtrando com AND
(&
)
Selecionando pessoas com mais de 30 anos e salário acima de 7.000:
df_filtrado = df[(df["Idade"] > 30) & (df["Salário"] > 7000)]
print(df_filtrado)
Saída:
Nome Idade Cidade Salário
2 Carlos 40 Belo Horizonte 10000
4 Eduardo 35 Porto Alegre 8000
🔹 Filtrando com OR
(|
)
Selecionando pessoas com idade superior a 35 ou salário maior que 7.000:
df_filtrado = df[(df["Idade"] > 35) | (df["Salário"] > 7000)]
print(df_filtrado)
Saída:
Nome Idade Cidade Salário
1 Bruno 32 Rio de Janeiro 7000
2 Carlos 40 Belo Horizonte 10000
4 Eduardo 35 Porto Alegre 8000
🔹 4. Filtrando por Texto (str.contains
)
Selecionando pessoas cuja cidade contém "Rio":
df_filtrado = df[df["Cidade"].str.contains("Rio", case=False)]
print(df_filtrado)
Saída:
Nome Idade Cidade Salário
1 Bruno 32 Rio de Janeiro 7000
🔹 5. Filtrando com .isin()
Selecionando pessoas que moram em Belo Horizonte ou Curitiba:
df_filtrado = df[df["Cidade"].isin(["Belo Horizonte", "Curitiba"])]
print(df_filtrado)
Saída:
Nome Idade Cidade Salário
2 Carlos 40 Belo Horizonte 10000
3 Daniela 29 Curitiba 6500
🔹 6. Filtrando Valores Nulos (isna()
e notna()
)
Adicionar valores nulos para exemplificar:
df.loc[2, "Salário"] = None # Definindo um valor como nulo
Filtrar apenas linhas com valores nulos:
df_nulos = df[df["Salário"].isna()]
print(df_nulos)
Saída:
Nome Idade Cidade Salário
2 Carlos 40 Belo Horizonte NaN
Filtrar apenas linhas sem valores nulos:
df_sem_nulos = df[df["Salário"].notna()]
print(df_sem_nulos)
🔹 7. Filtrando por Índices
Selecionar apenas as primeiras 3 linhas:
df_filtrado = df.iloc[:3]
print(df_filtrado)
Selecionar linhas pelos índices específicos:
df_filtrado = df.loc[[0, 2, 4]]
print(df_filtrado)
🔹 8. Ordenação após Filtragem (sort_values
)
Depois de filtrar, podemos ordenar os resultados por idade, do menor para o maior:
df_filtrado = df[df["Salário"] > 6000].sort_values(by="Idade")
print(df_filtrado)
🎯 Conclusão
O Pandas oferece diversas formas de filtrar dados, desde operações simples até combinações complexas. Com esses exemplos, você está pronto para aplicar filtros de maneira eficiente em suas análises!
Gostou do conteúdo? Compartilhe e continue acompanhando nosso blog! 🚀