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! 🚀

Read more