Tutorial

ENTSO-E API en Python: Análisis energético en Europa

Programa tus análisis energéticos europeos automáticamente con Python y la API de ENTSO-E. Te lo explicamos paso a paso con ejemplos prácticos.

ENTSO-E API en Python: Análisis energético en Europa

Si comparamos España ES con Italia IT_SACO_AC, observamos que el incremento del precio horario de la electricidad en España tarda más en llegar.

Análisis horario del precio de la electricidad en Europa, mostrando cómo la posición geográfica y la generación solar afectan los precios energéticos.
F1. Comparación horaria del precio de electricidad en Europa

Uno de los motivos es que la generación solar abarata el precio de la electricidad.

Aunque ambos países tienen la misma zona horaria, Italia está más al este que España, por lo que el sol se pone antes en Italia que en España.

En este tutorial, te explicaremos cómo descargar datos energéticos europeos a través de la API de ENTSO-E y analizarlos con Python.

¿Buscas algo más sencillo? Hemos publicado python-entsoe — una librería Python que convierte todo este tutorial en llamadas simples. Leer el anuncio →

Preguntas

  1. ¿Cómo acceder a la API de ENTSO-E para descargar datos energéticos europeos?
  2. ¿Qué función se usa para descargar datos de generación?
  3. ¿Y los precios de la electricidad?
  4. ¿Cómo usar los códigos de área para descargar datos por país?
  5. ¿Cómo se agrupan los datos para realizar comparaciones horarias?
  6. ¿Cómo descagar múltiples áreas de mercado a la vez?

Metodología

Conseguir Token de Acceso

Para descargar los datos de ENTSO-E programáticamente, necesitas un token de acceso.

  1. Regístrate en ENTSO-E
  2. Ve a My Account
  3. Accede a Web API Access
  4. Genera tu token
API_TOKEN = 'TU_TOKEN'

Para trabajar con la API de ENTSO-E en Python, recomendamos usar python-entsoe, una librería moderna con una interfaz más limpia y mejor experiencia de desarrollo. Consulta nuestro tutorial completo de python-entsoe para más detalles.

pip install python-entsoe
from entsoe import ENTSOEClient

client = ENTSOEClient()

Descargar Generación por Tecnología en Italia

Para meternos en faena, vamos a descargar los datos de generación por tecnología en Italia durante el mes de febrero de 2024.

start = "2024-02-01"
end = "2024-02-29"

df = client.generation.actual(start, end, country="IT")
Datos de generación energética por tecnología en Italia durante febrero de 2024, mostrando la distribución de fuentes como solar, eólica, y convencional.
F2. Generación energética por tecnología en Italia

Comparación Horaria de Generación por Tecnología

Como acostumbramos, vamos a crear una matriz de calor para destacar las diferencias en la generación por tecnología en Italia según la hora del día.

df['hour'] = df['timestamp'].dt.hour
df.groupby(['hour']).sum()

Dado que en febrero no hay muchas horas de sol, la generación solar solo fue significativa durante pocas horas, desde las 9 hasta las 15.

Matriz de calor representando la generación por tecnología en Italia a lo largo del día, evidenciando las horas de mayor producción solar.
F3. Matriz de calor de generación energética en Italia

¿Qué conclusiones adicionales puedes identificar a partir de este análisis? Te leo en los comentarios.

Descargar Precios Electricidad por Área en Europa

Vamos a subir el nivel: descargaremos los precios de la electricidad por área en Europa.

Para ello, pasamos una lista de códigos de país directamente — la librería gestiona la iteración y añade una columna country automáticamente.

Contenido avanzado
Regístrate gratis para desbloquear

Conclusiones

  1. Acceso a la API de ENTSO-E: ENTSOEClient() de python-entsoe proporciona una interfaz limpia para descargar datos y analizarlos con pandas.
  2. Descarga de datos de generación: client.generation.actual() para descargar los datos de generación de energía por tecnología de un país específico.
  3. Descarga de precios de la electricidad: client.prices.day_ahead() para obtener los precios de la electricidad dada un área de mercado específica.
  4. Uso de códigos de área para datos por país: parámetro country para especificar el área de mercado de la que queremos descargar los datos.
  5. Agrupación de datos para comparaciones horarias: extraer la hora de los timestamps y usar groupby para agregar los valores aplicando una función matemática.
  6. Descarga de múltiples áreas de mercado: pd.concat para concatenar los múltiples indicadores descargados tras iterar sobre una lista de códigos de área.

Si pudieras programar lo que quisieras, ¿qué sería?

Puede que te eche una mano creando tutoriales que te ayuden. Te leo en los comentarios.

Sigue leyendo

Artículos relacionados que te pueden interesar

Índice
Buscar sección

Suscríbete a nuestro newsletter

Recibe insights semanales sobre datos, automatización e IA.

© 2026 Datons. All rights reserved.