import pandas as pd
from groq import Groq
client = Groq()
dados_produtos = {
'nome do produto': ['Smartphone X', 'Notebook Y', 'Fone Bluetooth', 'Cafeteira Express', 'Livro Ficção'],
'categoria': ['eletrônicos', 'eletrônicos', 'eletrônicos', 'eletrodomésticos', 'livros'],
'preço': [1500.00, 3500.00, 200.00, 450.00, 45.00],
'avaliação': [4.5, 1.8, 4.2, 1.5, 4.9],
'itens vendidos': [120, 30, 450, 60, 200]
}
df_inicial = pd.DataFrame(dados_produtos)
df_inicial.to_csv('produtos.csv', index=False, encoding='utf-8')
dados_reviews = {
'id_produto': [1, 2, 3, 4, 5],
'review': [
'Excelente produto, chegou super rápido e funciona muito bem!',
'Muito ruim, trava o tempo todo e a bateria não dura nada.',
'O fone é bom, mas o grave deixa um pouco a desejar.',
'Péssimo atendimento e o produto veio quebrado, odiei.',
'História fantástica, li em dois dias!'
]
}
df_rev_inicial = pd.DataFrame(dados_reviews)
df_rev_inicial.to_csv('reviews.csv', index=False, encoding='utf-8')
df = pd.read_csv('produtos.csv', encoding='utf-8')
print("=== DATAFRAME COMPLETO ===")
print(df)
print("\n=== HEAD ===")
print(df.head(2))
coluna_preco = df['preço']
print("\n=== COLUNA ESPECÍFICA (PREÇO) ===")
print(coluna_preco)
categorias_unicas = df['categoria'].unique()
print("\n=== VALORES ÚNICOS (CATEGORIA) ===")
print(categorias_unicas)
filtro_eletronicos = df[df['categoria'] == 'eletrônicos']
print("\n=== FILTRO SIMPLES (ELETRÔNICOS) ===")
print(filtro_eletronicos)
filtro_avaliacao_baixa = df[df['avaliação'] < 2.0]
print("\n=== FILTRO CONDICIONAL (AVALIAÇÃO < 2.0) ===")
print(filtro_avaliacao_baixa)
filtro_combinado = df[(df['categoria'] == 'eletrônicos') & (df['preço'] > 500)]
print("\n=== FILTRO COMBINADO (ELETRÔNICOS & PREÇO > 500) ===")
print(filtro_combinado)
linha_iloc = df.iloc[2]
print("\n=== SELEÇÃO ILOC (ÍNDICE NUMÉRICO 2) ===")
print(linha_iloc)
df_textual = df.set_index('nome do produto')
linha_loc = df_textual.loc['Smartphone X']
print("\n=== SELEÇÃO LOC (ÍNDICE TEXTUAL 'Smartphone X') ===")
print(linha_loc)
print("\n=== DESAFIO: ANÁLISE DE SENTIMENTOS COM LLM ===")
df_reviews = pd.read_csv('reviews.csv', encoding='utf-8')
sentimentos = []
for review in df_reviews['review']:
try:
completion = client.chat.completions.create(
model="llama3-8b-8192",
messages=[
{
"role": "system",
"content": "Você é um classificador de sentimentos. Responda APENAS com uma das seguintes palavras: Positivo, Negativo ou Neutro."
},
{
"role": "user",
"content": f"Classifique o sentimento deste feedback: {review}"
}
],
temperature=0.0,
max_tokens=10
)
sentimento = completion.choices[0].message.content.strip()
sentimentos.append(sentimento)
except Exception as e:
sentimentos.append("Erro")
df_reviews['sentimento'] = sentimentos
print(df_reviews)