# python + powerBI **Published by:** [Frexus](https://paragraph.com/@frexus-2/) **Published on:** 2025-03-25 **URL:** https://paragraph.com/@frexus-2/python-powerbi ## Content Práctica GuiadaObjetivo: Transformar datos de eventos culturales desde archivos CSV/Excel hasta dashboards interactivos. Requisitos Previos Python 3.8 Bibliotecas: pandas, numpy, sqlalchemy Apps: Power BI Desktop o Cuenta en Looker Studio Dataset de ejemplo: Guarde el data set en un fichero con el nombre eventos_culturales.csv, debe de contener las siguientes columnas: fecha, evento, asistencia, municipio, inversion. pulsa aquí para ver un ejemplo de como se llenaría el csvPaso 1: Extracción (Extract)import pandas as pd # Cargar datos desde múltiples fuentes df_eventos = pd.read_csv('eventos_culturales.csv') # Desde CSV df_presupuestos = pd.read_excel('presupuestos.xlsx') # Desde Excel # Validar estructura inicial print(df_eventos.head()) print(f"Registros cargados: {len(df_eventos)}") Paso 2: Transformación (Transform)# 1. Limpieza: Eliminar duplicados y nulos df_eventos.drop_duplicates(inplace=True) df_eventos.dropna(subset=['asistencia', 'municipio'], inplace=True) # 2. Normalización: Formato de fechas y categorías df_eventos['fecha'] = pd.to_datetime(df_eventos['fecha'], format='%d/%m/%Y') df_eventos['municipio'] = df_eventos['municipio'].str.upper() # 3. Enriquecimiento: Crear KPIs df_eventos['costo_por_asistente'] = df_eventos['inversion'] / df_eventos['asistencia'] # 4. Consolidación: Merge con presupuestos df_final = pd.merge(df_eventos, df_presupuestos, on='evento', how='left')2. Normalización: Formato de fechas y categorías Paso 3: Carga (Load)# Exportar a CSV/Excel df_final.to_csv('eventos_procesados.csv', index=False) # Luego en Power BI: # 1. Click en "Obtener datos" > CSV/Excel # 2. Cargar archivo generado # 3. Crear relaciones y medidas Paso 4: Visualización (Ejemplo Power BI)Mapa de calor: Arrastra municipio a mapa + asistencia como tamaño de burbuja. Serie temporal: Gráfico de línea con fecha vs costo_por_asistente. Tabla resumen: evento, asistencia, inversión + filtros interactivos.Preguntas de Reflexión¿Por qué es crítico estandarizar formatos de fecha/municipio?¿Cómo impacta la limpieza de nulos en el cálculo de KPIs?¿Qué ventaja tiene usar merge vs concat?¿Cuándo preferirías BigQuery sobre CSV para carga?Datos adicionales para enriquecer el CSV (opcional):Columna categoria: ("Música", "Artes plásticas", "Teatro").Columna organizador: Nombre de la dependencia a cargo.Columna rating: Satisfacción del público (1-5).Explicación de campos:fecha: Formato día/mes/año (ideal para análisis temporales).evento: Tipo de actividad cultural (categorizable).asistencia: Número de personas registradas (entero).municipio: Ubicación geográfica (útil para mapas).inversion: Costo del evento en MXN (para cálculos de ROI).Ejemplo de análisis posibles con estos datos:ROI por evento: inversion / asistencia → ¿El taller infantil costó 228porpersonavs.228porpersonavs.40 del jazz?Tendencia temporal: ¿Eventos en diciembre atraen más asistencia?Distribución geográfica: ¿El 60% de los eventos son en Guadalajara? ## Publication Information - [Frexus](https://paragraph.com/@frexus-2/): Publication homepage - [All Posts](https://paragraph.com/@frexus-2/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@frexus-2): Subscribe to updates