Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: trabajando en otros contextos

Pongamos nuevamente en práctica todo lo que aprendimos durante la clase. He puesto los 2 nuevos conjuntos de datos disponibles para descargar a continuación:

Proyecto Desafío 1: Ventas Online - dados_vendas_clientes.json;
Proyecto Desafío 2: Administración de Condominios - dados_locacao_imoveis.json.

Recuerda: Hay dos proyectos de tratamiento que se construirán durante el curso. Así que guarde su código de construcción para cada desafío para poder aplicarlo a desafíos posteriores.

Etapa 3

Proyecto Desafío 1: Ventas Online

En el paso 2, trabajamos en la transformación de datos numéricos. Ahora podemos trabajar con valores textuales.

Debido a una inestabilidad en el sitio web de la empresa, tuvimos problemas con los nombres de los clientes durante el guardado. Esto resultó en una columna de nombres de clientes con una combinación de letras, mayúsculas y minúsculas, números y otros caracteres.

Sabiendo esto, manipula los textos de la columna Cliente para que el resultado sean los nombres de los clientes en letras minúsculas, con ausencia de caracteres especiales o números.

import pandas as pd
import json
import re

with open('/content/dados_vendas_clientes.json', 'r', encoding='utf-8') as f:
    dados = json.load(f)

# Convertir a DataFrame
df = pd.DataFrame(dados['dados_vendas'])

# 3. Normalizando
df_normalizado = df.explode(['Cliente', 'Valor da compra']).reset_index(drop=True)

print("Estructura antes de limpieza:")
display(df_normalizado.head())

# limpieza de texto
def limpiar_nombre(nombre):
    
    # Convertir a minúsculas
    nombre = nombre.lower()
    
    # Eliminar caracteres especiales y números (solo letras y espacios)
    nombre = re.sub(r'[^a-záéíóúñ\s]', '', nombre)
    
    # Eliminar espacios duplicados
    nombre = re.sub(r'\s+', ' ', nombre)
    
    # Quitar espacios al inicio y final
    nombre = nombre.strip()
    
    return nombre

df_normalizado['Cliente_limpio'] = df_normalizado['Cliente'].apply(limpiar_nombre)

# Validación
print("\nComparación antes y después:")
display(df_normalizado[['Cliente', 'Cliente_limpio']].head(10))

df_final = df_normalizado.copy()

print("\nDataFrame final listo para análisis:")
display(df_final.head())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Proyecto Desafío 2: Administración de Condominios
En el paso 2, trabajamos en transformar los datos numéricos. Ahora podemos trabajar con valores textuales.

Buscando explicar la organización de la identificación de los apartamentos, durante la creación del conjunto de datos se añadió el texto (blocoAP). Este texto informa que los nombres de los apartamentos están organizados con la letra mayúscula seguida del número del apartamento. Sin embargo, esto no aporta ninguna información a nuestros datos, por lo que resulta interesante eliminar este texto del conjunto de datos.

Con esto, manipule los textos de la columna apartamento para eliminar el texto (blocoAP) del DataFrame.

import pandas as pd
import json
import re

with open('/content/dados_locacao_imoveis.json', 'r', encoding='utf-8') as f:
    dados = json.load(f)

df = pd.DataFrame(dados['dados_locacao'])

print("Estructura original:")
display(df.head())


#Limpieza de columna apartamento
df['apartamento_limpio'] = df['apartamento'].str.replace(r'\s*\(blocoAP\)', '', regex=True)

# Validación
print("\nComparación antes y después:")
display(df[['apartamento', 'apartamento_limpio']].head())

# Verificar que no quede el texto
print("\nCantidad de registros que aún contienen 'blocoAP':")
print(df['apartamento_limpio'].str.contains('blocoAP').sum())

# 5. Reemplazar columna original
df['apartamento'] = df['apartamento_limpio']
df.drop(columns=['apartamento_limpio'], inplace=True)

print("\nDataFrame final:")
display(df.head())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola , espero que estés muy bien.

Felicitaciones por tu aprendizaje. Estamos priorizando el foro para postear dudas, así optimizamos el tiempo de respuesta para ustedes.

Para no dejar de compartir los códigos, actividades y ejercicios que realizas, creamos un canal en Discord (#compartetucodigo) donde puedes compartirlos, dar y sugerir mejoras con el resto de tus compañeros.

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!