Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exercício pandas #11

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion exercicios/para-casa/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Agora que já sabem como fazer o processo de ETL com pandas, é hora de brincar
O que preciso que faça:

- Use o arquivo `mais_ouvidas_2024.csv` para análise. Lembre-se de garantir que o carregamento foi feito com sucesso.
- Indentifique as colunas que contêm números, como 'Spotify Streams', 'YouTube Views', etc., e converta essas colunas para o tipo numérico se estiverem em outro formato. (Use replace() e astype())
- Identifique as colunas que contêm números, como 'Spotify Streams', 'YouTube Views', etc., e converta essas colunas para o tipo numérico se estiverem em outro formato. (Use replace() e astype())
- Corrija a coluna 'Release Date' para o formato datetime.
- Crie uma nova coluna chamada 'Streaming Popularity', que seja a média da popularidade nas plataformas 'Spotify Popularity', 'YouTube Views', 'TikTok Likes', e 'Shazam Counts'. (lembrem-se que só é possível calcular médias e fazer operações matemáticas com tipos númericos)
- Crie uma coluna 'Total Streams', somando os valores de 'Spotify Streams', 'YouTube Views', 'TikTok Views', 'Pandora Streams', e 'Soundcloud Streams'.
Expand Down
33 changes: 33 additions & 0 deletions exercicios/para-casa/entrega_Lari_Schmillevitch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import pandas as pd

df = pd.read_csv("/Users/laristch/Desktop/reprograma/on33-python-s09-pandas-numpy-I/material/mais_ouvidas_2024.csv")

print(df.head())

# Identificar colunas que contêm números e converter para o tipo numérico
for column in df.columns:
if df[column].dtype == "object":
df[column] = df[column].str.replace(",", "").astype(float, errors='ignore')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

o erro está acontecendo porque está tentando converter colunas que de fato são strings

print(df.dtypes)

# Corrigir a coluna 'Release Date' para o formato datetime
df['Release Date'] = pd.to_datetime(df['Release Date'], errors='coerce')
print(df.dtypes)

# Criar a coluna 'Streaming Popularity' (média das colunas de popularidade)
df['Streaming Popularity'] = df[['Spotify Popularity', 'YouTube Views', 'TikTok Likes', 'Shazam Counts']].mean(axis=1)

# Criar a coluna 'Total Streams' (soma das colunas de streams)
df['Total Streams'] = df[['Spotify Streams', 'YouTube Views', 'TikTok Views', 'Pandora Streams', 'Soundcloud Streams']].sum(axis=1)

# Filtrar as faixas conforme as condições
filtered_df = df[(df['Spotify Popularity'] > 80) & (df['Total Streams'] > 1000000)]

# Salvar o DataFrame resultante em um novo arquivo JSON
filtered_df.to_json('faixas_filtradas.json', index=False)

print(filtered_df.head())




1 change: 1 addition & 0 deletions exercicios/para-casa/faixas_filtradas.json

Large diffs are not rendered by default.