1
resposta

Desafio: Mão na massa Zoop Pay

1 parte

import pandas as pd

# URLs dos arquivos CSV
url_clientes = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/zoop_clientes.csv"
url_vendas = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/zoop_vendas.csv"

# Leitura dos arquivos CSV
df_clientes = pd.read_csv(url_clientes)
df_vendas = pd.read_csv(url_vendas)

# Mesclando os DataFrames usando a chave 'ID_compra'
df = pd.merge(df_vendas, df_clientes, on='ID_compra', how='inner')

# Lista de colunas na ordem desejada
colunas_ordenadas = [
    "ID_compra", "data", "horario", "categoria", "preco_unitario",
    "quantidade", "frete", "metodo_pagamento", "ID_cliente", "idade",
    "sexo_biologico", "cidade", "uf", "regiao", "cashback", "avaliacao_compra"
]

# Reorganizando as colunas
df = df[colunas_ordenadas]

# Convertendo coluna 'data' para tipo datetime, se necessário
df["data"] = pd.to_datetime(df["data"], errors="coerce")

# Exibindo as primeiras linhas do DataFrame resultante
df.head()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade2 parte

import pandas as pd

# URLs das bases
url_clientes = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/zoop_clientes.csv"
url_vendas = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/zoop_vendas.csv"
url_zoop_pay = "https://raw.githubusercontent.com/alura-cursos/ia-datascience-dataviz/main/dados/cadastro_zoop_pay.csv"

# Leitura das bases
df_clientes = pd.read_csv(url_clientes)
df_vendas = pd.read_csv(url_vendas)
df_pay = pd.read_csv(url_zoop_pay)

# Merge inicial: df_vendas + df_clientes → df
df = pd.merge(df_vendas, df_clientes, on='ID_compra', how='inner')

# Ajuste da ordem das colunas, se necessário
colunas_ordenadas = [
    "ID_compra", "data", "horario", "categoria", "preco_unitario",
    "quantidade", "frete", "metodo_pagamento", "ID_cliente", "idade",
    "sexo_biologico", "cidade", "uf", "regiao", "cashback", "avaliacao_compra"
]
df = df[colunas_ordenadas]

# Conversão da coluna 'data' para datetime no formato correto
df['data'] = pd.to_datetime(df['data'], format='%Y-%m-%d', errors='coerce')

# Merge final: df + df_pay usando 'ID_cliente'
df = pd.merge(df, df_pay, on='ID_cliente', how='left')  # ou 'inner' se quiser só clientes que têm cadastro no Zoop Pay

# Visualizando o resultado
df.head()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Oi, Thamiris! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura. Você fez um ótimo trabalho ao realizar os merges entre as bases de dados, o que é uma etapa fundamental em projetos de análise de dados.

Uma dica interessante para o futuro é usar a função fillna() para tratar valores nulos após o merge. Isso pode ser útil para preencher colunas que podem ter valores ausentes após a união dos DataFrames. Veja este exemplo:


df['cashback'] = df['cashback'].fillna(0)  # Preenche valores nulos com 0

Isso vai garantir que não existam valores nulos em colunas importantes, permitindo um processamento mais tranquilo das informações.

Conteúdos relacionados

O link acima está em inglês, mas você poderá utilizar a tradução automática do navegador.

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