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 inclusiveFiltragem 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 25Vá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 LAbetween() 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 85loc 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:99at 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 secondnlargest 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 500Verificaçã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
- Fundamentos de Series e DataFrame
- Indexação, filtragem e máscaras booleanas
- GroupBy, agregação e tabelas dinâmicas
- Mesclagem, junção e limpeza de dados