Pandas: Seleção de Dados

Última atualização: 2026-08-26

A seleção de dados é a operação mais frequente na análise de dados—"mostre-me os dados que atendem a estas condições." O Pandas oferece um rico conjunto de métodos de seleção: por rótulo, por posição, por condição, por expressão, e até mesmo por strings de consulta semelhantes a SQL. Esta seção orienta você em cada método de seleção e ajuda a evitar o erro mais comum de "indexação encadeada".

⚠️ Observação: O código abaixo deve ser executado em um ambiente Python local.

1. What You Will Learn


2. Necessidades de Filtragem de Produtos do Charlie

(1) O Ponto de Dor: Combinar Múltiplas Condições É Muito Trabalhoso

Charlie precisa filtrar "Produtos de Eletrônicos com preço > 50 e avaliação > 4.0" de 1000 produtos. Ele primeiro escreveu uma longa sequência de condições usando indexação booleana:

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard',
             'Mouse', 'Headset', 'Speaker', 'Camera', 'Charger'],
    'category': ['Electronics', 'Electronics', 'Electronics', 'Electronics',
                 'Accessories', 'Accessories', 'Accessories', 'Accessories',
                 'Electronics', 'Accessories'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99,
              29.99, 149.99, 89.99, 599.99, 19.99],
    'stock': [50, 120, 80, 35, 200, 300, 150, 180, 25, 500],
    'rating': [4.7, 4.5, 4.3, 4.6, 4.2, 4.0, 4.4, 4.1, 4.8, 3.9]
})

# Indexação booleana — funciona, mas é verboso
result = df[(df['price'] > 50) & (df['rating'] > 4.0) & (df['category'] == 'Electronics')]
print(result[['name', 'price', 'rating']])
#       name    price  rating
# 0   Laptop   999.99     4.7
# 1    Phone   699.99     4.5
# 2   Tablet   349.99     4.3
# 3  Monitor   449.99     4.6
# 8   Camera   599.99     4.8
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

(2) A Solução: O Método query É Mais Legível

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: Consultas legíveis com query (Dificuldade ⭐⭐)

PYTHON
# Mesmo resultado, muito mais legível
result = df.query('price > 50 and rating > 4.0 and category == "Electronics"')
print(result[['name', 'price', 'rating']])

# Com variável
min_price = 50
min_rating = 4.0
result2 = df.query('price > @min_price and rating > @min_rating')
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

(3) O Benefício: Quatro Métodos de Seleção, Cada Um com Seus Pontos Fortes

Método Sintaxe Melhor Para
loc df.loc[linha, coluna] Seleção precisa por rótulo
iloc df.iloc[r, c] Seleção baseada em posição
Indexação booleana df[condição] Condições simples
query df.query('expressão') Filtros com múltiplas condições complexas

3. loc: Seleção por Rótulo

(1) Sintaxe do loc

df.loc[rotulo_linha, rotulo_coluna] — seleciona por rótulo; as fatias incluem o ponto final.

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então por favor instale em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: seleção por rótulo com loc (Dificuldade ⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99],
    'stock': [50, 120, 80, 35, 200]
}, index=['A001', 'A002', 'A003', 'A004', 'A005'])

# Única linha por rótulo
print(df.loc['A001'])
# name      Laptop
# price     999.99
# stock         50

# Múltiplas linhas
print(df.loc[['A001', 'A003']])

# Fatia de linhas + fatia de colunas (rótulos, INCLUI o ponto final)
print(df.loc['A001':'A003', 'name':'price'])
#          name    price
# A001   Laptop   999.99
# A002    Phone   699.99
# A003   Tablet   349.99

# Linhas específicas + colunas específicas
print(df.loc[['A001', 'A004'], ['name', 'stock']])
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então por favor instale em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

(2) Seleção Condicional com loc

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então por favor instale em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: loc + condição (Dificuldade ⭐⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99],
    'stock': [50, 120, 80, 35, 200]
})

# Filtrar linhas + selecionar colunas em uma operação
expensive = df.loc[df['price'] > 400, ['name', 'price']]
print(expensive)
#       name    price
# 0   Laptop   999.99
# 1    Phone   699.99
# 3  Monitor   449.99

# Com atribuição (seguro — sem indexação encadeada)
df.loc[df['stock'] < 50, 'stock'] = 50  # reabastecer itens com estoque baixo
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então por favor instale em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

4. iloc: Seleção por Posição

(1) Sintaxe do iloc

df.iloc[linha_pos, coluna_pos] — seleciona por posição inteira; as fatias excluem o ponto final (estilo Python).

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então por favor instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: seleção por posição com iloc (Dificuldade ⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99],
    'stock': [50, 120, 80, 35, 200]
})

# Uma única linha por posição
print(df.iloc[0])      # primeira linha (Laptop)

# Múltiplas linhas por lista de posições
print(df.iloc[[0, 2, 4]])

# Fatia de linhas + fatia de colunas (posições, EXCLUI o ponto final)
print(df.iloc[0:3, 0:2])
#      name    price
# 0  Laptop   999.99
# 1   Phone   699.99
# 2  Tablet   349.99

# Últimas 2 linhas
print(df.iloc[-2:])

# A cada outra linha
print(df.iloc[::2])
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então por favor instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

(2) Principais Diferenças Entre loc e iloc

Característica loc iloc
Base do índice Rótulo Posição inteira
Ponto final da fatia Inclui o ponto final Exclui o ponto final
Rótulos de string
Índices negativos
Filtragem condicional
Cenário recomendado Quando você conhece o nome Quando você conhece a posição
🔥 Erro Comum: df.loc[0:3] inclui as linhas 0,1,2,3 (4 linhas), enquanto df.iloc[0:3] inclui as linhas 0,1,2 (3 linhas). Este é o ponto mais comum de confusão entre loc e iloc.


5. Filtragem Condicional (Indexação Booleana)

(1) Condições Única e Múltipla

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, então instale-o na sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: Filtragem condicional (Dificuldade ⭐⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard'],
    'category': ['Electronics', 'Electronics', 'Electronics', 'Electronics', 'Accessories'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99],
    'stock': [50, 120, 80, 35, 200],
    'rating': [4.7, 4.5, 4.3, 4.6, 4.2]
})

# Single condition
print(df[df['price'] > 400])

# Multiple conditions: & (AND), | (OR), ~ (NOT)
# MUST use parentheses around each condition!
high_price_good_rating = df[(df['price'] > 400) & (df['rating'] >= 4.5)]
print(high_price_good_rating[['name', 'price', 'rating']])

# OR condition
hot_items = df[(df['price'] > 500) | (df['stock'] > 100)]
print(hot_items[['name', 'price', 'stock']])

# NOT condition
not_electronics = df[~(df['category'] == 'Electronics')]
print(not_electronics)
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, então instale-o na sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.
⚠️ Nota: Ao combinar múltiplas condições, você deve usar & / | / ~, não and / or / not. Cada condição deve estar entre parênteses, caso contrário, a precedência do operador causará um erro.

(2) Condições de String

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, então instale-o na sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: Filtragem por condição de string (Dificuldade ⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Wireless Mouse', 'USB Keyboard', 'Bluetooth Headset',
             'Wireless Speaker', 'USB Camera'],
    'price': [29.99, 79.99, 149.99, 89.99, 599.99]
})

# Contains substring
wireless = df[df['name'].str.contains('Wireless')]
print(wireless)

# Starts with
usb = df[df['name'].str.startswith('USB')]
print(usb)
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, então instale-o na sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

6. O Método query

(1) Sintaxe Básica

df.query('expression') — filtra linhas usando uma expressão string, oferecendo legibilidade mais próxima do SQL.

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, então por favor instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: consultas de expressão query (Dificuldade ⭐⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard'],
    'category': ['Electronics', 'Electronics', 'Electronics', 'Electronics', 'Accessories'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99],
    'stock': [50, 120, 80, 35, 200],
    'rating': [4.7, 4.5, 4.3, 4.6, 4.2]
})

# Condição simples
print(df.query('price > 400'))

# Múltiplas condições (and/or em vez de &/|)
print(df.query('price > 400 and rating >= 4.5'))

# Comparação de strings
print(df.query('category == "Electronics"'))

# Use @ para referenciar variáveis Python
threshold = 100
print(df.query('stock > @threshold'))

# Nomes de colunas com espaços (crase)
# df.query('`unit price` > 100')
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, então por favor instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

(2) query vs. Indexação Booleana

Recurso Indexação Booleana query
Sintaxe df[(df.a>1) & (df.b<2)] df.query('a>1 and b<2')
Legibilidade Parênteses aninhados Próximo ao SQL
Referência a variável Usado diretamente Requer o prefixo @
Nomes de colunas com espaços Sem problema Requer crases
Desempenho Ligeiramente mais lento (DF grande) Ligeiramente mais rápido (motor otimizado)
Flexibilidade Máxima Limitada pela sintaxe da expressão

7. Filtro por isin

(1) Correspondência de Múltiplos Valores

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então instale-o em sua máquina (`pip install pandas`) e siga junto. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: filtragem por isin com múltiplos valores (Dificuldade ⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet', 'Monitor', 'Keyboard'],
    'category': ['Electronics', 'Electronics', 'Electronics', 'Electronics', 'Accessories'],
    'price': [999.99, 699.99, 349.99, 449.99, 79.99]
})

# Filtra por múltiplos valores de categoria
target_cats = ['Electronics', 'Audio']
# Nota: Audio não está nos dados → sem correspondência, sem erro
result = df[df['category'].isin(target_cats)]
print(result[['name', 'category']])

# Negação: NÃO está na lista
other = df[~df['category'].isin(['Electronics'])]
print(other)
# Somente Accessories

# isin com valores numéricos
target_prices = [999.99, 79.99]
print(df[df['price'].isin(target_prices)])
# Laptop e Keyboard
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado, então instale-o em sua máquina (`pip install pandas`) e siga junto. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

(2) isin vs. == para Múltiplos Valores

Método Sintaxe Caso de Uso
isin df[col].isin([v1,v2,v3]) Correspondência de múltiplos valores
== df[col] == v1 Correspondência de valor único
| combinação (df[col]==v1) | (df[col]==v2) Alguns múltiplos valores
query df.query('col in ["v1","v2"]') Correspondência de múltiplos valores legível

8. A Armadilha do Encadeamento de Índices

(1) O que é Encadeamento de Índices

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, portanto, instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: O perigo oculto do encadeamento de índices (Dificuldade ⭐⭐)

PYTHON
import pandas as pd

df = pd.DataFrame({
    'name': ['Laptop', 'Phone', 'Tablet'],
    'price': [999.99, 699.99, 349.99],
    'category': ['Electronics', 'Electronics', 'Electronics']
})

# ❌ Encadeamento de índices — pode acionar SettingWithCopyWarning
# df[df['price'] > 400]['price'] = 0  # Imprevisível!

# ✅ Operação única com loc
df.loc[df['price'] > 400, 'price'] = 0  # Sempre funciona

# ❌ Outra forma encadeada
# df[df['category'] == 'Electronics']['stock'] = 100

# ✅ Abordagem correta
df.loc[df['category'] == 'Electronics', 'stock'] = 100
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, portanto, instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.
🔥 Erro Comum: O encadeamento de índices df[condição][coluna] = valor pode não modificar o DataFrame original (o resultado intermediário é uma cópia). A forma correta de escrever é: df.loc[condição, coluna] = valor — uma operação única que especifica linhas e colunas de uma só vez.

(2) Árvore de Decisão para Seleção Segura

100%
graph TB
    Q["Precisa selecionar dados?"] -->|"Somente leitura"| LOC["loc / iloc / boolean"]
    Q -->|"Leitura + Atribuição"| SAFE["loc[cond_linha, col] = valor"]
    Q -->|"Filtro complexo"| QUERY["query()"]
    Q -->|"Correspondência de múltiplos valores"| ISIN["isin()"]
    SAFE --> WARN["❌ Nunca: df[cond][col] = val"]
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado, portanto, instale-o em sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

9. Exemplo Completo: Filtragem Multidimensional de Produtos para E-Commerce

▶ Exemplo

TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente local do Python (pandas 2.x). O servidor Piston não tem pandas pré-instalado, por favor instale na sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

: O fluxo completo de filtragem de produtos (Dificuldade ⭐⭐⭐)

PYTHON
import pandas as pd
import numpy as np

# ============================================
# Exemplo abrangente: Fluxo de trabalho de
# seleção multidimensional de produtos
# e-commerce
# ============================================

# 1. Criar catálogo de produtos
np.random.seed(42)
df = pd.DataFrame({
    'name': [f'Product_{i:03d}' for i in range(1, 51)],
    'category': np.random.choice(['Electronics', 'Clothing', 'Home', 'Sports'], 50),
    'price': np.round(np.random.uniform(10, 500, 50), 2),
    'stock': np.random.randint(0, 300, 50),
    'rating': np.round(np.random.uniform(3.0, 5.0, 50), 1),
    'brand': np.random.choice(['Alpha', 'Beta', 'Gamma', 'Delta'], 50)
})

# 2. loc: seleção precisa
print("=== Eletrônicos com preço > 200 ===")
elec_expensive = df.loc[
    (df['category'] == 'Electronics') & (df['price'] > 200),
    ['name', 'price', 'rating']
]
print(elec_expensive.head())

# 3. iloc: seleção baseada em posição
print("\n=== Primeiras 3 linhas, primeiras 4 colunas ===")
print(df.iloc[:3, :4])

# 4. Boolean: múltiplas condições
print("\n=== Alta classificação, em estoque, abaixo de $100 ===")
bargains = df[(df['rating'] >= 4.5) & (df['stock'] > 0) & (df['price'] < 100)]
print(bargains[['name', 'price', 'rating', 'stock']])

# 5. query: filtro complexo legível
print("\n=== Marca Alpha Eletrônicos ou Casa, classificação >= 4.0 ===")
query_result = df.query(
    'brand == "Alpha" and category in ["Electronics", "Home"] and rating >= 4.0'
)
print(query_result[['name', 'category', 'rating']])

# 6. isin: filtro de múltiplos valores
print("\n=== Marcas selecionadas ===")
top_brands = df[df['brand'].isin(['Alpha', 'Beta'])]
print(f"Produtos Alpha + Beta: {len(top_brands)}")

# 7. Atribuição segura
df.loc[df['stock'] == 0, 'status'] = 'Fora de Estoque'
df.loc[df['stock'] > 0, 'status'] = 'Em Estoque'
print(f"\n=== Status do Estoque ===")
print(df['status'].value_counts())
TEXT 📖 Somente leitura
> **Saída:** Execute isso em um ambiente local do Python (pandas 2.x). O servidor Piston não tem pandas pré-instalado, por favor instale na sua máquina (`pip install pandas`) e acompanhe. Os valores reais podem variar ligeiramente dependendo da versão do pandas.

❓ Perguntas Frequentes

P Qual é a diferença entre loc e iloc?
R loc seleciona por rótulo (nome da linha/nome da coluna), e os slices incluem o extremo. iloc seleciona por posição inteira, e os slices excluem o extremo (estilo Python). Use loc quando você conhece o nome, e iloc quando conhece a posição. Quando o Índice é o RangeIndex(0,1,2...) padrão, loc[0] e iloc[0] retornam o mesmo resultado, mas sua semântica difere.
P Por que filtros condicionais precisam de parênteses?
R Em Python, os operadores & / | / ~ têm precedência mais alta do que os operadores de comparação. df['a'] > 1 & df['b'] < 2 é interpretado como df['a'] > (1 & df['b']) < 2, o que gera um erro. Você deve escrever (df['a'] > 1) & (df['b'] < 2). Você não pode usar and/or/not—eles não suportam operações elemento a elemento no nível do array.
P Qual é o problema com a indexação encadeada?
R df[condition][col] = value são duas operações separadas: a primeira pode retornar uma view ou uma cópia, e atribuir a uma cópia na segunda etapa não afetará o DataFrame original. Isso leva ao bug sutil de "Eu mudei, mas não surtiu efeito." A maneira correta de escrever é: df.loc[condition, col] = value, uma única operação que especifica linhas e colunas de uma vez.
P O query suporta variáveis?
R Sim. Use @ para referenciar variáveis externas: df.query('price > @min_price'). Para nomes de colunas com espaços, use crases: df.query('unit price > 100'). Dentro do query, palavras-chave como and/or/not/in são suportadas, tornando-o mais próximo da linguagem natural.
P Qual é a diferença entre isin e ==?
R == só pode corresponder a um único valor, enquanto isin pode corresponder a vários valores de uma vez. df[col].isin([v1,v2,v3]) é equivalente a (df[col]==v1) | (df[col]==v2) | (df[col]==v3), mas é mais conciso e eficiente. Use ~df[col].isin(...) quando precisar de negação.
P Quais são as armadilhas de atribuir após uma seleção?
R A maior armadilha é a indexação encadeada (veja Pergunta Frequente #3). Outra armadilha é que df[df.a > 0] = 1 define toda a linha como 1 (não apenas a coluna a). A forma correta é: df.loc[df.a > 0, 'a'] = 1. Sempre use loc para especificar tanto a condição de linha quanto a coluna de destino ao mesmo tempo.
P Por que um slice do loc inclui o extremo?
R Esta é uma escolha de design do Pandas—ao fatiar por rótulo, o extremo significa "do rótulo A ao rótulo B", e incluir ambos é mais intuitivo (assim como um intervalo de chaves em um dicionário). Fatiar por posição com iloc segue a convenção do Python (excluindo o extremo). Lembre-se: loc é "semântica de rótulo", e iloc é "semântica do Python".

📖 Resumo


📝 Exercícios

  1. Básico (Dificuldade ⭐): Crie um DataFrame de alunos (nome / matemática / inglês / ciências). Use loc para selecionar as colunas nome e matemática dos alunos com nota em matemática > 80, e use iloc para selecionar as 3 primeiras linhas.
  2. Intermediário (Dificuldade ⭐⭐): Filtre os mesmos dados de 3 maneiras (indexação booleana / query / isin): preço entre 50 e 200, e categoria é Eletrônicos ou Casa. Compare a quantidade de código e a legibilidade.
  3. Desafio (Dificuldade ⭐⭐⭐): Crie um DataFrame de produtos com 50 linhas e complete 5 exercícios de seleção: loc com linha única / iloc com fatiamento / booleano com múltiplas condições / query com variável / isin com múltiplos valores. Após cada seleção, atribua com segurança uma nova coluna de marcador usando loc e, por fim, conte a quantidade de cada marcador.

← Previous Lesson: Data Types · Next Lesson: Data I/O →

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%