# 1. Criar DataFrame com 5 colunas
dados = {
'nome_produto': ['Notebook', 'Mouse', 'Teclado', 'Monitor', 'Fone'],
'categoria': ['eletrônicos', 'eletrônicos', 'periféricos', 'eletrônicos', 'periféricos'],
'preço': [3500.00, 150.00, 450.00, 1200.00, 200.00],
'avaliação': [4.5, 3.8, 1.9, 2.3, 4.9],
'itens_vendidos': [45, 230, 112, 67, 189]
}
df = pd.DataFrame(dados)
# 2. Salvar e importar com pd.read_csv
df.to_csv('produtos.csv', index=False)
df = pd.read_csv('produtos.csv')
# 3. Exibir DataFrame completo e head
print("DataFrame Completo:")
print(df)
print("\nPrimeiros registros:")
print(df.head(3))
# 4. Selecionar coluna específica
print("\nCategorias:")
print(df['categoria'])
# 5. Valores únicos
print("\nCategorias únicas:")
print(df['categoria'].unique())
# 6. Filtro simples - categoria eletrônicos
eletronicos = df[df['categoria'] == 'eletrônicos']
print("\nProdutos eletrônicos:")
print(eletronicos)
# 7. Filtro condicional - avaliação < 2.0
baixa_avaliacao = df[df['avaliação'] < 2.0]
print("\nProdutos com avaliação < 2.0:")
print(baixa_avaliacao)
# 8. Combinar filtros com & - eletrônicos E preço > 1000
filtro_combinado = df[(df['categoria'] == 'eletrônicos') & (df['preço'] > 1000)]
print("\nEletrônicos caros (>1000):")
print(filtro_combinado)
# 9. Usar iloc - linhas por índice numérico
print("\nPrimeiras 2 linhas (iloc):")
print(df.iloc[0:2])
# 10. Usar loc - definir índice textual
df_loc = df.set_index('nome_produto')
print("\nAcesso com loc - Notebook:")
print(df_loc.loc['Notebook'])
# 11. Análise de sentimentos com LLM
# Criar reviews fictícios para análise
reviews = [
"Produto excelente, recomendo!",
"Péssima qualidade, não funcionou",
"Bom custo-benefício",
"Decepcionante, esperava mais",
"Perfeito! Superou expectativas"
]
df['review'] = reviews
client = Anthropic()
def classificar_sentimento(review):
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=50,
messages=[
{
"role": "user",
"content": f"Classifique em uma palavra (positivo/negativo/neutro): {review}"
}
]
)
return message.content[0].text.strip().lower()
df['sentimento'] = df['review'].apply(classificar_sentimento)
print("\nDataFrame final com análise de sentimentos:")
print(df[['nome_produto', 'review', 'sentimento']])
::
Resumo das técnicas aplicadas:
Criação: DataFrame com 5 colunas e dados de exemplo
Importação: pd.read_csv() para carregar CSV
Visualização: .head() e print() para exploração
Seleção: Colchetes para acessar colunas
Valores únicos: .unique() para encontrar categorias diferentes
Filtros simples: Condições booleanas
Filtros combinados: Operador & para múltiplas condições
iloc/loc: Acesso por índice numérico e textual
Sentimentos: Integração com Claude API usando .apply() para processar cada review
Este código está pronto para executar e cobre todos os 11 pontos do desafio.