0Pricing
Python Academy · Aula

Indexação, filtragem e máscaras booleanas

Selecione linhas e colunas com loc, iloc e condições booleanas.

Indexação, filtragem e máscaras booleanas é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

loc versus iloc

loc seleciona por rótulo; iloc seleciona pela posição inteira. Nunca os confunda.

import pandas as pd

df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]}, index=["x","y","z"])
print(df.loc["y"])       # row with label y
print(df.iloc[1])        # row at position 1 (same row)
print(df.loc["x":"y"])   # rows x to y inclusive

Filtragem com máscara booleana

Crie uma Series booleana e use-a para selecionar linhas. Esse é o equivalente, no pandas, à indexação booleana do NumPy.

import pandas as pd

df = pd.DataFrame({"name":["Alice","Bob","Carol"],"age":[30,17,25]})
adults = df[df["age"] >= 18]
print(adults)
# Alice 30
# Carol 25

Várias condições

Combine condições booleanas com & (e) e | (ou). Coloque cada condição entre parênteses.

import pandas as pd

df = pd.DataFrame({"city":["NY","LA","NY","LA"],"score":[80,90,70,85]})
result = df[(df["city"]=="NY") & (df["score"]>75)]
print(result)

Método query()

df.query("expression") aceita uma expressão em formato de texto, geralmente mais legível do que máscaras booleanas.

import pandas as pd

df = pd.DataFrame({"age":[30,17,25],"score":[90,80,70]})
result = df.query("age >= 18 and score > 75")
print(result)

Filtragem com isin()

isin(list) filtra as linhas em que o valor de uma coluna está em uma determinada lista.

import pandas as pd

df = pd.DataFrame({"city":["NY","LA","Chicago","NY"],"val":[1,2,3,4]})
print(df[df["city"].isin(["NY","LA"])])
# rows with NY or LA

between() para filtragem por intervalo

series.between(left, right) retorna True para valores em [left, right] — inclusivo por padrão.

import pandas as pd

df = pd.DataFrame({"score":[55,70,85,95,40]})
print(df[df["score"].between(60, 90)])
# 70 and 85

loc para atribuição

Sempre use loc/iloc para atribuições no próprio objeto e evite o SettingWithCopyWarning.

import pandas as pd

df = pd.DataFrame({"val":[1,2,3,4]})
df.loc[df["val"] > 2, "val"] = 99
print(df)
# 0:1  1:2  2:99  3:99

at e iat para valores individuais

at[label, col] e iat[i, j] fornecem acesso escalar rápido — mais rápido do que loc/iloc para valores individuais.

import pandas as pd

df = pd.DataFrame({"a":[10,20],"b":[30,40]})
print(df.at[0,"a"])    # 10  (by label)
print(df.iat[1,1])     # 40  (by position)

Seleção por tipo de dados

select_dtypes(include/exclude) seleciona colunas pelo tipo de dados.

import pandas as pd

df = pd.DataFrame({"x":[1,2],"name":["a","b"],"score":[1.5,2.5]})
nums = df.select_dtypes(include=["number"])
print(nums.columns.tolist())   # ['x', 'score']

Remoção de duplicatas

drop_duplicates() remove linhas duplicadas. Especifique subset para comparar apenas determinadas colunas.

import pandas as pd

df = pd.DataFrame({"name":["Alice","Bob","Alice"],"age":[30,25,30]})
print(df.drop_duplicates())
# keeps first Alice, removes second

nlargest e nsmallest

Selecione de forma eficiente as N primeiras ou últimas linhas com base no valor de uma coluna.

import pandas as pd

df = pd.DataFrame({"product":["A","B","C","D"],"sales":[500,300,800,200]})
print(df.nlargest(2,"sales"))
# C 800
# A 500

Verificação rápida

Qual é a diferença entre loc e iloc?

Recapitulação

Use loc[label] para seleção baseada em rótulos e iloc[i] para seleção baseada em posição. Filtre linhas com máscaras booleanas combinadas por &/|. Use query() para filtros legíveis, isin() para testes de pertencimento e sempre faça atribuições por meio de loc para evitar SettingWithCopyWarning.

Perguntas Frequentes

A aula “Indexação, filtragem e máscaras booleanas” é grátis?

Sim — o texto completo de “Indexação, filtragem e máscaras booleanas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Indexação, filtragem e máscaras booleanas”?

Selecione linhas e colunas com loc, iloc e condições booleanas. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Indexação, filtragem e máscaras booleanas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fundamentos de Series e DataFrame
  2. Indexação, filtragem e máscaras booleanas
  3. GroupBy, agregação e tabelas dinâmicas
  4. Mesclagem, junção e limpeza de dados
← Voltar para Python Academy