Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Faça como eu fiz: DataFrames e Filtros

  • 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
1 resposta

Oi, Thayane. Tudo bem com você?

Seu exercício ficou bem completo e contemplou os principais pontos propostos na atividade. Você utilizou pd.DataFrame, pd.read_csv, seleção de colunas, unique, set, filtros condicionais, operador &, iloc e loc com um novo índice. Também aplicou o desafio de análise de sentimentos utilizando o Gemini e adicionou os resultados ao DataFrame.

Também foi interessante você gerar os dados de forma aleatória com NumPy, em vez de trabalhar apenas com valores fixos. Isso permite testar os filtros com diferentes conjuntos de dados.

Parabéns pelo exercício e por compartilhar seu código. Continue praticando e trazendo suas soluções para o fórum, pois esse tipo de compartilhamento também ajuda outras pessoas nos estudos. O fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!