Tutorial

EIA API en Python: Descarga automática de datos energéticos de EE.UU.

Entiende la estructura de la API de EIA y aprende a usarla con Python para automatizar las descargas y exportaciones a Excel.

Cada hora, la red eléctrica de EE.UU. coordina la oferta y demanda de electricidad. En el proceso se genera una gran cantidad de datos.

Por ejemplo, el siguiente gráfico representa la demanda eléctrica por subregión.

Demanda eléctrica por subregión

En lugar de descargar los archivos Excel manualmente y navegar por los menús, puedes automatizar el proceso usando programación.

En este tutorial, aprenderás a usar la API de EIA (Energy Information Administration) con Python.

Preguntas

  1. ¿Cómo identificar indicadores de la API de EIA?
  2. ¿Cómo usar la API de EIA para descargar datos programáticamente?
  3. ¿Cómo construir una tabla a partir de los datos de respuesta de la API?
  4. ¿Cómo superar los límites de datos de la API de EIA?
  5. ¿Cómo filtrar datos de un período específico?
  6. ¿Cómo exportar datos a un archivo Excel?

Metodología

Clave de API de EIA

Regístrate en el sitio web oficial de la API de EIA para obtener la clave de API, que es necesaria para solicitar datos.

API_KEY = 'YOUR_API_KEY'

Catálogos de datos

La API de EIA proporciona acceso a numerosos catálogos de datos. El siguiente código usa la URL base de la API para solicitar la lista de catálogos.

URL_BASE = "https://api.eia.gov/v2/"

import requests

res = requests.get(URL_BASE, params={'api_key': API_KEY})
data = res.json()

Catálogo de datos de la API de EIA

Categorías anidadas

Como nos interesa la demanda eléctrica, usaremos el endpoint electricity.

endpoint = 'electricity'
url = URL_BASE + endpoint

res = requests.get(url, params={'api_key': API_KEY})
data = res.json()

Hay categorías anidadas dentro de cada catálogo.

La demanda está disponible a través del endpoint rto.

Categorías anidadas dentro del endpoint electricity

Solicitar datos del endpoint

Configura el endpoint electricity/rto/daily-region-sub-ba-data para obtener la demanda por subregión de Balancing Authority.

Al final de la URL, añade data para descargar los datos en lugar de la información del endpoint.

endpoint = 'electricity/rto/daily-region-sub-ba-data/'
url = URL_BASE + endpoint + 'data'

res = requests.get(url, params={'api_key': API_KEY})
data = res.json()

Construir tabla a partir de datos de respuesta de la API

La respuesta de la API no está representada en formato tabular. Es un objeto JSON. Por lo tanto, necesitamos transformarlo en una tabla usando la biblioteca pandas.

import pandas as pd

df = pd.DataFrame(data['response']['data'])

Datos limitados de la API de EIA sin valores

Hay un problema con los límites de los datos. La API devuelve solo las primeras 5.000 filas y el valor de la demanda eléctrica no aparece en la tabla.

¿Cómo obtener todos los datos hasta ahora con los valores?

Obtener todos los datos con valores

Usando el parámetro offset, puedes obtener los datos en bloques de 5.000 filas.

Con el parámetro data[], obtendrás los valores de la demanda eléctrica.

Este proceso puede tomar algo de tiempo; ponte cómodo ;)

Inicia sesión para ver el código

Datos completos de la API de EIA con valores

¿Y si quisieras descargar los datos de un período específico?

Filtrar datos de un período específico

Por ejemplo, para filtrar los datos de 2024, puedes usar el parámetro start para especificar la fecha inicial.

Inicia sesión para ver el código

Datos filtrados por fecha usando parámetros de la API de EIA

Exportar tabla de datos a Excel

Finalmente, puedes exportar los datos a un archivo Excel para analizarlos allí.

Aunque, quizás prefieras ahorrar tiempo analizando los datos directamente en Python ;)

Inicia sesión para ver el código

Conclusiones

Ahora, en lugar de descargar manualmente los datos de EIA y navegar por los menús, sabes cómo automatizar el proceso usando Python.

En este tutorial, has aprendido a:

  1. Identificar indicadores de la API de EIA.
  2. Usar la API de EIA para descargar datos programáticamente.
  3. Construir una tabla a partir de datos de respuesta de la API.
  4. Superar los límites de datos de la API de EIA.
  5. Filtrar datos de un período específico.
  6. Exportar datos a un archivo Excel.

Suscríbete a nuestro newsletter

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

© 2025 Datons. All rights reserved.