preciso lista dentro de uma célula, não conseguimos fazer cálculos. O método explode "explode" essa lista, transformando cada elemento em uma nova linha, mas mantendo as informações das outras colunas repetidas para dar contexto.
Resolução:
vou tratar a coluna de clientes e valores, transformando-os em números reais para análise.
vendas online
Lemos a base de dados no desafio anterior, agora podemos avançar nas transformações desses dados. Então, o novo desafio do projeto 1 será dividido em algumas metas:
Remover os dados em listas dentro do DataFrame;
Verificar os tipos de dados;
Identificar colunas numéricas;
Transformar a coluna numérica para o tipo numérico.
import pandas as pd
import numpy as np
1. Carregar e normalizar (repetindo etapa 1 para contexto)
df_vendas = pd.read_json('dados_vendas_clientes.json')
df_vendas = pd.json_normalize(df_vendas['dados_vendas'])
2. Remover os dados em listas (Explode)
Precisamos explodir as colunas que possuem listas
colunas_listas = ['Cliente', 'Valor da compra']
df_vendas = df_vendas.explode(colunas_listas)
3. Resetar o índice (opcional, mas recomendado após explode)
df_vendas.reset_index(drop=True, inplace=True)
4. Transformar para tipo numérico
Primeiro removemos o "R$ " e trocamos a vírgula pelo ponto
df_vendas['Valor da compra'] = df_vendas['Valor da compra'].apply(lambda x: x.replace('R$ ', '').replace(',', '.'))
Agora convertemos para float
df_vendas['Valor da compra'] = df_vendas['Valor da compra'].astype(np.float64)
print(df_vendas.info()) # Verificar tipos de dados
display(df_vendas.head())
Projeto desafio 2: administração de condomínios
Lemos a base de dados no desafio anterior, agora podemos avançar nas transformações desses dados. Então, da mesma forma que o projeto 1, o desafio do projeto 2 está listado em algumas metas:
Remover os dados em listas dentro do DataFrame;
Verificar os tipos de dados;
Identificar colunas numéricas;
Transformar a coluna numérica para o tipo numérico.
Administração de Condomínios esta tratando listas estão nas datas e nos valores dos aluguéis.
1. Carregar e normalizar
df_locacao = pd.read_json('dados_locacao_imoveis.json')
df_locacao = pd.json_normalize(df_locacao['dados_locacao'])
2. Remover os dados em listas (Explode)
colunas_listas_loc = ['datas_combinadas_pagamento', 'datas_de_pagamento', 'valor_aluguel']
df_locacao = df_locacao.explode(colunas_listas_loc)
df_locacao.reset_index(drop=True, inplace=True)
3. Transformar para tipo numérico (Tratando a string "$ 1000,0 reais")
df_locacao['valor_aluguel'] = df_locacao['valor_aluguel'].apply(
lambda x: x.replace('$ ', '').replace(' reais', '').replace(',', '.')
)
Convertendo para float
df_locacao['valor_aluguel'] = df_locacao['valor_aluguel'].astype(np.float64)
print(df_locacao.info()) # Verificar tipos de dados
display(df_locacao.head())