- Crie um DataFrame com 5 colunas: nome do produto, categoria, preço, avaliação e itens vendidos;
- Utilize pd.read_csv para importar dados de um arquivo CSV;
- Exiba o DataFrame completo e com .head para visualizar os registros iniciais;
- Selecione uma coluna específica utilizando a notação de colchetes;
- Extraia valores únicos de uma coluna com os métodos unique ou set;
- Realize um filtro simples para selecionar registros com categoria igual a 'eletrônicos';
- Aplique um filtro condicional para obter produtos com avaliação menor que 2.0;
- Combine filtros usando o operador & para condições simultâneas, como categoria e preço;
- Utilize o método iloc para selecionar linhas por índices numéricos;
- Acesse registros com índices textuais utilizando o método loc após definir um novo índice;
- Implemente o desafio: carregue o CSV de reviews, utilize um LLM para classificar o sentimento de cada feedback e adicione essa classificação como nova coluna no DataFrame.
import numpy as np
nomes_dos_produtos = [f"Produto {i+1}" for i in range(10)]
categorias_dos_produtos = np.random.choice(["Smartphones", "Casa", "Eletrodomésticos", "Roupas", "Eletrônicos"], 10)
precos = np.random.uniform(5.0, 1000.0, 10).round(2)
quantidades_vendidas = np.random.randint(1, 500, 10)
avaliacoes_dos_produtos = np.random.uniform(1.0, 10.0, 10).round(1)
import pandas as pd
df_produtos = pd.DataFrame({
"Descrição": nomes_dos_produtos,
"Categoria": categorias_dos_produtos,
"Preço": precos,
"Avaliação": avaliacoes_dos_produtos,
"Itens Vendidos": quantidades_vendidas,
})
df_produtos
df_produtos.head()
df_produtos["Categoria"]
df_produtos["Categoria"].unique()
set(df_produtos["Categoria"])
df_produtos[df_produtos["Categoria"] == "Eletrônicos"]
df_produtos[df_produtos["Avaliação"] <= 2.0]
df_produtos[(df_produtos["Categoria"] == "Eletrodomésticos") & (df_produtos["Preço"] >= 600.00)]
df_produtos.iloc[6]
df_produtos.iloc[5:9]
df_produtos_indice_por_nome = df_produtos.set_index("Descrição")
df_produtos_indice_por_nome
df_produtos_indice_por_nome.loc["Produto 3"]
df_produtos_indice_por_nome.loc["Produto 2" : "Produto 5"]
# Implementar o Desafio do módulo 5
import os
from google import genai
from google.colab import userdata
import time
api_key = userdata.get("GEMINI_API_KEY_ALURA")
#os.environ["GOOGLE_API_KEY"] = api_key
client = genai.Client(api_key=api_key)
df_reviews = pd.read_csv("/content/reviews.csv", sep=";")
df_reviews.head()
coluna_reviews = df_reviews["reviewText"]
coluna_reviews
lista_analises_sentimentos = []
for num_review, review in enumerate(coluna_reviews):
analise = client.models.generate_content(
model="gemini-2.5-flash",
contents=f"""Analise a resenha e retorne a análise de sentimento. Usar somente os termos: 'Positiva', 'Negativa' ou 'Neutra'.
Review para análise: {review}
"""
)
lista_analises_sentimentos.append(analise.text)
print(f"Review {num_review} : '{review}'. Sentimento: {analise.text}")
time.sleep(10)
lista_analises_sentimentos
df_reviews["Sentimentos das Reviews"] = lista_analises_sentimentos
df_reviews