- Carregar e preparar os dados
import pandas as pd
import matplotlib.pyplot as plt
Carregar dataset
df = pd.read_csv("user_data.csv")
Converter data
df["last_played"] = pd.to_datetime(df["last_played"])
df.head()
- Verifique e trate problemas
Valores ausentes
print("Valores ausentes:\n", df.isnull().sum())
Remover duplicatas
df = df.drop_duplicates()
print("Total após limpeza:", len(df))
- Estatísticas descritivas
print(df["play_count"].describe())
4. Distribuição por usuário
plays_por_usuario = df.groupby("user_id")["play_count"].sum()
print("Plays por usuário:\n", plays_por_usuario)
- Distribuição por música
plays_por_musica = df.groupby("song_id")["play_count"].sum()
print("Plays por música:\n", plays_por_musica)
- Top 5 músicas e usuários
Top músicas
top_musicas = plays_por_musica.sort_values(ascending=False).head(5)
print("Top 5 músicas:\n", top_musicas)
Top usuários
top_usuarios = plays_por_usuario.sort_values(ascending=False).head(5)
print("Top 5 usuários:\n", top_usuarios)
- Criar matriz (pivot)
matriz = df.pivot_table(
index="user_id",
columns="song_id",
values="play_count",
fill_value=0
)
print(matriz)
- Histograma
plt.hist(df["play_count"], bins=10)
plt.title("Distribuição de play_count")
plt.xlabel("Reproduções")
plt.ylabel("Frequência")
plt.show()