Use Case #2 — Standardize Text and Category Values
Normalize spaces, capitalization, spelling variations, and equivalent business categories without changing the underlying meaning.
Caso práctico progresivo para transformar datos municipales sucios en información confiable, analizable y útil para decisiones.
Security notice: Run these scripts only in a controlled practice environment. Do not execute them in production or institutional systems without authorization, backups, testing, least-privilege permissions, change control, and compliance with organizational protocols.
Aviso de seguridad: Ejecuta estos scripts únicamente en un ambiente controlado de práctica. No los corras en producción ni en sistemas institucionales sin autorización, respaldos, pruebas, permisos mínimos, control de cambios y cumplimiento de los protocolos organizacionales.
Business Purpose
Propósito de negocio
Normalize spaces, capitalization, spelling variations, and equivalent business categories without changing the underlying meaning.
Este caso continúa el flujo real de trabajo con solicitudes de servicios municipales y documenta cada transformación de forma trazable.
Input and Output
Entrada y salida
Inputmessy_city_service_requests.csv
Outputstandardized_city_service_requests.csv
SeriesUse Case #2 of 20
Results can vary because the source dataset was generated synthetically and randomly. Run the code to obtain the exact values from your local file.
Los resultados pueden variar porque el dataset de origen fue generado de forma sintética y aleatoria. Ejecuta el código para obtener los valores exactos de tu archivo local.
Step 1 — Load the source dataset
import pandas as pd
from pathlib import Path
base = Path.home() / "Documents" / "Pandas_Use_Cases"
input_file = base / "messy_city_service_requests.csv"
output_file = base / "standardized_city_service_requests.csv"
df = pd.read_csv(input_file)
print(f"Rows loaded: {len(df):,}")
print(f"Columns loaded: {df.shape[1]}")
Expected Result / Interpretation
Resultado esperado / Interpretación
Rows loaded: 530
Columns loaded: 22
Step 2 — Trim all text columns
text_columns = df.select_dtypes(include="object").columns
for column in text_columns:
df[column] = df[column].str.strip()
print(f"Text columns processed: {len(text_columns)}")
Expected Result / Interpretation
Resultado esperado / Interpretación
Leading and trailing spaces removed from every text column.