1
resposta

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

1️ Criando um DataFrame com 5 colunas
import pandas as pd
import numpy as np

Criando listas de dados para cada coluna

nomes_produtos = [f"Produto {i+1}" for i in range(10)]
categorias = np.random.choice(["Eletrônicos", "Roupas", "Alimentos"], 10)
precos = np.random.uniform(10.0, 500.0, 10).round(2)
avaliacoes = np.random.uniform(1.0, 5.0, 10).round(1)
itens_vendidos = np.random.randint(1, 1000, 10)

Criando o DataFrame

df_produtos = pd.DataFrame({
"Nome do produto": nomes_produtos,
"Categoria": categorias,
"Preço": precos,
"Avaliação": avaliacoes,
"Itens vendidos": itens_vendidos
})

Exibindo o DataFrame completo

print("DataFrame completo:\n", df_produtos)

Exibindo os primeiros registros

print("\nPrimeiros registros:\n", df_produtos.head())

2️ Selecionando uma coluna específica

Selecionando a coluna 'Categoria'

categorias_coluna = df_produtos["Categoria"]
print("\nColuna Categoria:\n", categorias_coluna)

3️ Extraindo valores únicos

Usando unique

categorias_unicas = df_produtos["Categoria"].unique()
print("\nCategorias únicas (unique):", categorias_unicas)

Usando set

categorias_unicas_set = set(df_produtos["Categoria"])
print("Categorias únicas (set):", categorias_unicas_set)

4️ Filtro simples – Categoria "Eletrônicos"
eletronicos = df_produtos[df_produtos["Categoria"] == "Eletrônicos"]
print("\nProdutos Eletrônicos:\n", eletronicos)

5️ Filtro condicional – Avaliação menor que 2.0
avaliacao_baixa = df_produtos[df_produtos["Avaliação"] < 2.0]
print("\nProdutos com avaliação menor que 2.0:\n", avaliacao_baixa)

6️ Combinação de filtros – Categoria e Preço
eletronicos_caros = df_produtos[(df_produtos["Categoria"] == "Eletrônicos") & (df_produtos["Preço"] > 300)]
print("\nEletrônicos com preço > 300:\n", eletronicos_caros)

7️ Seleção de índices numéricos com iloc

Selecionando a 3ª linha (índice 2)

linha_3 = df_produtos.iloc[2]
print("\nLinha de índice 2:\n", linha_3)

Selecionando linhas 0 a 4

linhas_0_4 = df_produtos.iloc[0:5]
print("\nLinhas de índice 0 a 4:\n", linhas_0_4)

8️ Seleção com índices textuais usando loc

Definindo coluna 'Nome do produto' como índice

df_indexado = df_produtos.set_index("Nome do produto")

Selecionando pelo nome do produto

produto_5 = df_indexado.loc["Produto 5"]
print("\nProduto 5:\n", produto_5)

9️ Desafio: Carregar CSV de avaliações e classificar sentimento

Vamos simular o processo de análise de sentimentos com LLM :

Simulando leitura do CSV

df_reviews = pd.read_csv("/content/reviews.csv")

df_reviews = pd.DataFrame({
"reviewText": [
"Eu adorei esse produto",
"Gostei, mas não é nada especial",
"Odiei esse produto"
]
})

Lista para armazenar análises de sentimento

lista_sentimentos = []

Simulação de LLM (substituindo o LLM real)

for review in df_reviews["reviewText"]:
if "adorei" in review:
lista_sentimentos.append("Positiva")
elif "Odiei" in review:
lista_sentimentos.append("Negativa")
else:
lista_sentimentos.append("Neutra")

Adicionando nova coluna com análises de sentimento

df_reviews["Sentimento"] = lista_sentimentos

print("\nDataFrame de reviews com sentimento:\n", df_reviews)

1 resposta

Olá, Moacir! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do Pandas para criar e manipular DataFrames, utilizou muito bem os filtros condicionais para extrair informações específicas e ainda compreendeu a importância da integração com análise de sentimentos para enriquecer os dados.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar o método groupby() para analisar métricas por categoria. Assim:

agrupado = df_produtos.groupby("Categoria")["Preço"].mean()
print(agrupado)

Isso faz o cálculo da média de preços por categoria, permitindo comparações rápidas entre os grupos.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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