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;
import numpy as np
import pandas as pd
np.random.seed(42)
categorias={
"Eletrônicos":["Smartphone","Notebook","Fone","Smartwatch","Tablet"],
"Vestuário":["Camiseta","Calça","Tênis","Jaqueta","Meias"],
"Alimentos":["Café","Chocolate","Arroz","Azeite","Biscoito"],
"Casa":["Luminária","Lençol","Panela","Almofada","Organizador"]
}
cats=np.random.choice(list(categorias.keys()),50)
df=pd.DataFrame({
"produto":[np.random.choice(categorias[c]) for c in cats],
"categoria":cats,
"preco":np.round(np.random.uniform(10,2500,50),2),
"avaliacao":np.round(np.random.uniform(1,5,50),1),
"quantidade_vendida":np.random.randint(1,150,50)
})
df.to_csv("produtos.csv",index=False)
df=pd.read_csv("produtos.csv")
display(df)
display(df.head())
display(df[["produto"]])
display(df["categoria"].unique())
display(df[df["categoria"]=="Eletrônicos"])
display(df[df["avaliacao"]<2])
display(
df[
(df["categoria"]=="Eletrônicos")&
(df["preco"]>=350)
]
)
display(df.iloc[15])
display(df.iloc[:16])
display(df.iloc[15:20])
display(df.iloc[43:])
df=df.set_index("produto")
display(df)
display(df.loc["Café"])
df_ord=df.sort_index()
display(df_ord.loc["Arroz":"Café"])
display(df.loc["Café","preco"])
display(
df.loc[
["Arroz","Café","Azeite"],
["preco","quantidade_vendida"]
]
)
eletronicos=df[df["categoria"]=="Eletrônicos"]
display(eletronicos)
display(
df.loc[
eletronicos.index,
["preco","quantidade_vendida"]
]
)
vestuario=df[df["categoria"]=="Vestuário"]
display(vestuario)
df.loc[vestuario.index,"categoria"]="Moda"
display(df)
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 pandas as pd
import os
from google.colab import userdata
from groq import Groq
os.environ["GROQ_API_KEY"]=userdata.get("Groq")
client=Groq(api_key=os.environ["GROQ_API_KEY"])
df=pd.read_csv("/content/reviews.csv")[["reviewText"]]
# df=df.head(5)
def classificar(review):
prompt=f"""
Classifique o texto como:
Positivo, Negativo ou Neutro.
Responda apenas com a classificação.
Texto:
{review}
"""
r=client.chat.completions.create(
model="llama-3.3-70b-versatile",
messages=[{
"role":"user",
"content":prompt
}]
)
return r.choices[0].message.content.strip().capitalize()
sentimentos=[]
for i,review in enumerate(df["reviewText"],1):
print(f"Analisando review {i}...")
sentimentos.append(classificar(review))
df["analise_sentimento"]=sentimentos
display(df)