Etapa 2
Proyecto Desafío 1: Ventas Online
Leímos la base de datos en el desafío anterior, ahora podemos seguir adelante con la transformación de estos datos. Así, el nuevo desafío del proyecto 1 será dividido en algunas metas:
- Eliminar datos en listas dentro del DataFrame;
- Verificar tipos de datos;
- Identificar columnas numéricas;
- Transformar la columna numérica a tipo numérico.
#1. Eliminar datos en listas dentro del DataFrame;
import pandas as pd
import json
# Ruta del archivo (en Colab debe subirse previamente)
path = "/content/dados_vendas_clientes.json"
# Cargar el archivo JSON
with open(path, "r", encoding="utf-8") as f:
dados = json.load(f)
# Normalizar el JSON
df = pd.json_normalize(dados["dados_vendas"])
# Eliminar listas usando explode en conjunto
df = df.explode(["Cliente", "Valor da compra"])
df
#2. Verificar el tipo de datos
# Ver información general del DataFrame
df.info()
#3. identificar columnas numericas
# Ver columnas disponibles
df.columns
# Inspeccionar la columna candidata a numérica
df["Valor da compra"].head()
# 4. Transformar la columna numérica a tipo numérico
# Limpieza de la columna monetaria
df["Valor da compra"] = (
df["Valor da compra"]
.str.replace("R$", "", regex=False)
.str.replace(".", "", regex=False)
.str.replace(",", ".", regex=False)
.str.strip()
)
# Conversión a tipo numérico
df["Valor da compra"] = pd.to_numeric(df["Valor da compra"], errors="coerce")
# Verificar tipos finales
df.dtypes
Proyecto Desafío 2: Administración de Condominios.
Leímos la base de datos en el desafío anterior, ahora podemos seguir adelante con la transformación de estos datos. Entonces, de la misma manera que en el proyecto 1, el desafío del proyecto 2 está listado en algunas metas:
- Eliminar datos en listas dentro del DataFrame;
- Verificar tipos de datos;
- Identificar columnas numéricas;
- Transformar la columna numérica a tipo numérico.
# 1. Eliminar datos en listas dentro del DataFrame
import pandas as pd
import json
# Ruta del archivo (subido previamente a Colab)
path = "/content/dados_locacao_imoveis.json"
# Cargar el JSON
with open(path, "r", encoding="utf-8") as f:
dados = json.load(f)
# Normalizar la estructura principal
df = pd.json_normalize(dados["dados_locacao"])
# Eliminar listas explotando las columnas relacionadas
df = df.explode(
["datas_combinadas_pagamento", "datas_de_pagamento", "valor_aluguel"]
)
df
# 2. Verificar tipos de datos
# Ver estructura y tipos de datos
df.info()
# 3. Identificar columnas numéricas
# Ver columnas disponibles
df.columns
# Inspeccionar la columna candidata a numérica
df["valor_aluguel"].head()
# 4. Transformar la columna numérica a tipo numérico
df["valor_aluguel"] = (
df["valor_aluguel"]
.str.replace("$", "", regex=False)
.str.replace("reais", "", regex=False)
.str.replace(".", "", regex=False)
.str.replace(",", ".", regex=False)
.str.strip()
)
# Conversión a tipo numérico
df["valor_aluguel"] = pd.to_numeric(df["valor_aluguel"], errors="coerce")
# Verificar tipos finales
df.dtypes