1
resposta

Desafio - trabalhando em outros contextos

#Projeto 1

import pandas as pd

dados = pd.read_json('/content/dados_vendas_clientes.json')

dados = pd.json_normalize(dados['dados_vendas'])

dados.head()

colunas = list(dados.columns)
dados

dados = dados.explode(colunas[1:])
dados.reset_index(drop=True,inplace=True)

dados
dados.info()

import numpy as np

dados['Valor da compra'] = dados['Valor da compra'].apply(lambda x: x.replace('R$ ', '').replace(',','.').strip())

dados['Valor da compra'] = dados['Valor da compra'].astype(np.float64)

dados.info()
1 resposta

Oi, Bárbara! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Achei bem bacana como você usou pd.json_normalize() para “abrir” o JSON e depois aplicou explode() com reset_index() para organizar as linhas. Também foi um cuidado importante transformar Valor da compra limpando R$ e ajustando a vírgula antes do astype(np.float64), porque isso deixa a coluna pronta para cálculos e análises.

Uma dica interessante para o futuro é usar o método pd.to_numeric() com errors='coerce', que ajuda a lidar com valores inesperados (por exemplo, campo vazio) sem quebrar o fluxo. Veja este exemplo:


import pandas as pd

dados['Valor da compra'] = (
  dados['Valor da compra']
    .str.replace('R$ ', '', regex=False)
    .str.replace(',', '.', regex=False)
    .str.strip()
)

dados['Valor da compra'] = pd.to_numeric(dados['Valor da compra'], errors='coerce')

Esse código limpa o texto da coluna e converte para número, trocando valores inválidos por NaN.

Alura

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