Pythonpython-esios完整使用指南一、包概述1. 简介python-esios是西班牙电力系统运营商ESIOS官方数据接口的 Python 第三方封装库专门用于抓取、解析、调用西班牙电力市场公开数据。数据源ESIOSRed Eléctrica de España, REE公开API涵盖电价、发电量、负荷、新能源出力、电网状态、交易数据等。核心定位电力市场数据分析、时序电力数据采集、电价预测、能源统计、自动化报表。依赖基于requests做网络请求、pandas做数据结构化支持时序筛选、多维度数据拉取。补充该库仅面向西班牙电力市场无国内电网数据接口。2. 核心功能按时间范围获取日前电价、实时电价、小时/日/周/月电价曲线获取全网用电负荷、净负荷、分时负荷数据分类发电量风电、光伏、火电、水电、核电、燃气等电源出力电网互联、跨境输电功率、市场交易数据数据自动转为pandas DataFrame支持时间索引、切片、可视化支持分页、批量历史数据爬取、时区自动适配欧洲/马德里时区。二、环境安装1. 前置依赖Python 版本要求Python 3.72. 标准安装# 正式版安装pipinstallpython-esios# 国内镜像加速pipinstallpython-esios-ihttps://pypi.tuna.tsinghua.edu.cn/simple3. 验证安装importesiosprint(esios.__version__)输出版本号即安装成功。4. 依赖补充可选数据分析/可视化必备pipinstallpandas numpy matplotlib三、核心语法、类、方法与参数详解1. 核心入口类Esios所有操作基于esios.Esios()实例是库的主入口。fromesiosimportEsios# 初始化客户端无账号也可调用公开数据clientEsios()2. 全局通用参数所有接口共用参数类型说明默认值start_datestr/datetime数据起始时间格式YYYY-MM-DD必传end_datestr/datetime数据结束时间格式YYYY-MM-DD必传timezonestr时区Europe/Madrid/UTC马德里时区rawboolTrue返回原始JSONFalse返回DataFrameFalseaggregatestr聚合粒度hour/day/week/monthhour3. 高频核心方法语法参数1get_market_prices()— 电力市场电价最常用作用获取日前市场、实时市场分时电价。# 语法client.get_market_prices(start_date,end_date,market:strday_ahead,# 市场类型timezone:strEurope/Madrid,raw:boolFalse)market可选值day_ahead日前市场电价主力intraday日内实时电价real_time实时平衡电价2get_demand()— 全网用电负荷作用获取西班牙全网总用电负荷、分时负荷。client.get_demand(start_date,end_date,rawFalse)3get_generation()— 分类发电量作用按电源类型拆分出力数据风电、光伏、火电等。client.get_generation(start_date,end_date,technology:strNone,# 指定单一电源None全部rawFalse)technology可选wind(风电)、solar(光伏)、nuclear(核电)、hydro(水电)、coal(火电)、gas(燃气)4get_renewable_generation()— 新能源总出力简化接口直接获取可再生能源合计出力。5get_interconnections()— 跨境输电功率获取西班牙与周边国家电网交换功率。6get_archive()— 批量历史归档数据拉取长期历史归档数据适合大数据批量采集。四、8个实战应用案例可直接运行统一前置代码fromesiosimportEsiosimportpandasaspdfromdatetimeimportdatetime# 初始化客户端esEsios()# 统一时间范围示例start2026-06-01end2026-06-10案例1获取日前市场分时电价基础用法需求抓取10天小时级日前电价查看数据结构。# 获取日前电价df_pricees.get_market_prices(start,end,marketday_ahead)# 查看前10行print(df_price.head(10))# 统计电价均值print(平均电价,df_price[price].mean())案例2获取日内实时电价并对比日前电价需求同时拉取日前实时电价做简单对比。df_dayes.get_market_prices(start,end,marketday_ahead)df_intraes.get_market_prices(start,end,marketintraday)# 合并两个电价序列df_mergepd.DataFrame({time:df_day.index,day_ahead_price:df_day[price],intraday_price:df_intra[price]})print(df_merge.head())案例3全网用电负荷采集与日聚合需求获取小时负荷按日聚合求日均负荷。df_demandes.get_demand(start,end)# 按日期分组求日均负荷daily_demanddf_demand.resample(D)[demand].mean()print(每日平均负荷\n,daily_demand)案例4单独抓取风电、光伏出力数据需求分别获取风电、光伏发电量分析新能源出力趋势。# 风电df_windes.get_generation(start,end,technologywind)# 光伏df_solares.get_generation(start,end,technologysolar)print(风电出力最大值,df_wind[generation].max())print(光伏出力最大值,df_solar[generation].max())案例5全品类发电量汇总所有电源需求获取核电、水电、火电、燃气等全部电源出力。df_gen_alles.get_generation(start,end)# 查看所有电源列名print(电源类型字段,df_gen_all.columns.tolist())# 输出整体数据print(df_gen_all.head())案例6获取跨境电网输电数据需求分析西班牙跨境电力交换功率。df_linkes.get_interconnections(start,end)print(df_link.head())# 统计平均跨境输电功率print(平均跨境输电功率,df_link.iloc[:,1].mean())案例7原始JSON数据获取自定义解析需求不转为DataFrame获取原生API JSON自行解析。raw_dataes.get_market_prices(start,end,rawTrue)# 打印原始JSON结构print(type(raw_data))print(raw_data[:2])案例8长期历史数据批量导出为Excel需求抓取历史数据并落地为Excel报表业务常用。# 拉长时间范围s2026-05-01e2026-05-31df_totales.get_market_prices(s,e)# 导出Exceldf_total.to_excel(西班牙电价数据.xlsx,indexTrue)print(数据已导出至 Excel)五、常见错误、报错原因与解决方案1. 报错requests.exceptions.ConnectionError连接超时/无法访问原因ESIOS 服务器在欧洲国内网络直连不稳定、丢包防火墙/代理拦截请求。解决配置代理importos# 全局设置代理根据自身代理修改os.environ[HTTP_PROXY]http://127.0.0.1:7890os.environ[HTTPS_PROXY]http://127.0.0.1:7890缩短单次时间范围避免长时段批量请求超时。2. 报错ValueError: Invalid date format日期格式错误原因日期不是YYYY-MM-DD标准格式或传入datetime对象格式异常。解决统一使用字符串格式2026-06-01不要混用/、\分隔符。3. 报错KeyError: price字段不存在原因market参数拼写错误接口返回字段随官方API更新变更开启rawTrue后直接按DataFrame字段取值。解决核对market参数拼写先打印df.columns查看实际字段名。4. 数据为空 / 返回空DataFrame原因选择的时间段暂无公开数据节假日、数据未归档technology电源名称拼写错误时间范围跨度过大API 限制返回空。解决缩小时间区间测试核对电源类型英文名称分批次拉取按天/按周拆分请求。5. 时区错乱、时间偏移原因默认马德里时区未手动指定UTC导致本地时间对不上。解决dfes.get_market_prices(start,end,timezoneUTC)6. 库导入失败 / 模块找不到原因多Python环境、安装到其他版本Python。解决# 确认当前pip对应环境whichpip# 或使用对应版本pippython3-mpipinstallpython-esios六、使用注意事项生产环境必看1. 接口调用频率限制ESIOS 公开API有请求频率限制禁止高频循环爬取如每秒多次请求批量历史数据建议间隔1~2秒分批请求避免IP封禁。2. 数据时效性日前电价每日提前发布次日24小时数据实时负荷/出力延迟数分钟更新历史归档数据一般延迟1~2天。3. 地域限制该库仅支持西班牙电力市场无中国、欧美其他国家电网数据勿用于国内电力业务。4. 版本兼容不建议使用 Python 3.6 及以下会出现依赖报错定期更新库适配官方API变更pipinstall--upgradepython-esios5. 数据单位说明电价单位€/MWh欧元/兆瓦时负荷/发电量单位MW兆瓦6. 商用合规ESIOS 数据为公开非商用数据大规模商用、二次分发需参考 REE 官方版权协议。七、总结python-esios是西班牙电力ESIOS平台的专用Python接口主打电价、负荷、新能源出力三大类时序数据核心流程安装 → 实例化Esios→ 按时间接口拉取数据 → 基于Pandas分析/导出国内使用最大难点是网络连通性优先配置代理、拆分请求时段适合电力市场研究、电价分析、新能源出力统计、自动化报表等场景。《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章前6章涵盖深度学习基础包括张量运算、神经网络原理、数据预处理及卷积神经网络等后5章进阶探讨图像、文本、音频建模技术并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法每章附有动手练习题帮助读者巩固实战能力。内容兼顾数学原理与工程实现适配PyTorch框架最新技术发展趋势。