Analiza +1 Millón de Datos usando Python en Excel y Power Query

Hace poco, necesitaba analizar un archivo CSV que contenía más de 1 millón de filas. Como bien sabes, Excel tiene un límite de filas que no permite cargar este volumen de datos directamente en una hoja de cálculo. Además, Python, por sí solo, no puede conectarse a un archivo tan grande sin ciertos ajustes.

Aquí es donde entra Power Query como solución. Esta herramienta nos permite conectarnos al archivo, realizar una transformación básica y luego, desde Python integrado en Excel, consumir esa conexión para hacer análisis avanzados.

Analiza +1 Millón de Datos usando Python en Excel y Power Query

Suscríbete para más tutoriales

Descarga el archivo para practicar

Escribe tu correo electrónico para recibir gratis el archivo para practicar.

Paso 1: Conectarse al Archivo con Power Query

El archivo que usaré, llamado datos_1m.csv, contiene más de un millón de registros con información como fechas, montos, tipos de transacción, métodos de pago y categorías.

  1. Ve a la pestaña Datos en Excel y selecciona Obtener datos > Desde archivo de texto/CSV.
  2. Selecciona el archivo desde tu computadora y haz clic en Importar.
  3. Una vez cargado, haz clic en Transformar datos para abrir Power Query.

Aquí no necesitamos transformar nada, ya que los datos están limpios. Simplemente selecciona Cerrar y cargar en… y elige Crear solo conexión. Esto evitará que los datos ocupen espacio en Excel y nos permitirá acceder a ellos desde Python.


Paso 2: Conexión entre Python y Power Query

Para que Python trabaje con esta conexión, usamos la funcionalidad de Python integrada en Excel (disponible en Microsoft 365).

  1. Ve a la pestaña Fórmulas y selecciona Editor de Python.
  2. Agrega una nueva celda de Python y expande el editor.
  3. Escribe o pega el siguiente código:
import pandas as pd
import matplotlib.pyplot as plt

# Cargar el archivo CSV (asegúrate de ajustar el nombre y ruta)
data = xl("Datos1M")


# --- 3. Análisis Temporal (Ingresos Mensuales) ---
data['FECHA'] = pd.to_datetime(data['FECHA'], format='%d/%m/%Y')
data['MES'] = data['FECHA'].dt.to_period('M')
ingresos_mensuales = data.groupby('MES')['MONTO'].sum()
plt.figure(figsize=(10, 6))
ingresos_mensuales.plot(kind='line', marker='o', color='green')
plt.title('Ingresos Mensuales')
plt.xlabel('Mes')
plt.ylabel('Ingresos Totales')
plt.grid()
plt.show()
  1. Ejecuta el código presionando Ctrl + Enter y espera a que Python procese los datos.

El resultado es un gráfico que muestra los ingresos mensuales por fecha, todo generado directamente en Excel.


Paso 3: Análisis Adicional con Tablas

Además de gráficos, puedes devolver tablas de análisis directamente a las celdas de Excel. Por ejemplo, para obtener los ingresos por método de pago:

  1. Modifica el código para realizar este análisis:
import pandas as pd

# Cargar el archivo CSV (ajusta el nombre y la ruta del archivo)
data = xl("Datos1M")

# Convertir la columna FECHA a formato datetime
data['FECHA'] = pd.to_datetime(data['FECHA'], format='%d/%m/%Y')

# --- 2. Ingresos por Método de Pago ---
ingresos_metodo_pago = data.groupby('MÉTODO DE PAGO')['MONTO'].sum().reset_index()
ingresos_metodo_pago.columns = ['MÉTODO DE PAGO', 'INGRESOS']
data = ingresos_metodo_pago
  1. Ejecuta el código y selecciona la opción Devolver valores a Excel desde la barra de fórmulas.

Esto genera una tabla dinámica en Excel con los métodos de pago y sus respectivos ingresos.


Ventajas de Usar Python en Excel

Al combinar Python con Excel, abres un abanico de posibilidades, como:

  • Crear visualizaciones avanzadas.
  • Analizar grandes volúmenes de datos sin depender de herramientas externas.
  • Automatizar procesos de limpieza y transformación de datos.

Lo mejor es que no necesitas instalar nada adicional. Python en Excel funciona en la nube, por lo que solo necesitas una conexión a Internet.

Certifícate en Excel

Tienes experiencia en Excel y quieres mejorar tus oportunidades laborales? Obtén la Certificación Excel Expert avalada por Microsoft.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top