Datawhale AI 夏令营——市场博弈和价格预测

比赛目标

electricity price.csv 文件中存放了2021年12月1日到2024年4月18日的电力市场的市场出清价格(clearing price)和市场需求(demand)。 

训练集范围为2021年12月1日到2023年7月1日,共计55392个点;测试集范围为2023年7月1日到2024年4月18日,共计28228个点。

unit.csv 文件中存放了市场供给者的参数信息。

我们的任务就是根据市场预测出测试集的出清价格。

评价指标如下:

ABM(Agent-Based-Modeling)

通过模拟个体(Agent)的行为和相互作用来研究整体的动态变化。

1.导入库

import numpy as np
import pandas as pd
from pathlib import Path
from sklearn.linear_model import LinearRegression

2.预处理 

读取数据,把两个文件中的内容读取到两个变量中,即electricity_price和unit

base_path = Path("data")  # 确保数据都放在同级的data目录下

# 读取市场数据
electricity_price = pd.read_csv(base_path / "electricity price.csv")
# 读取市场主体(各发电机组)数据
unit = pd.read_csv(base_path / "unit.csv")

 我们最终要提交的是测试集的出清价格,把它保存到submit.csv文件中,格式如下

准备提交示例文件,筛选出源文件electricity_price中的测试集,然后把demand列删去,就可以得到上面的submit.csv提交格式。


"""
准备示例提交数据sample_submit
1. electricity_price["clearing price (CNY/MWh)"].isna()找到出清价格为缺失值的行,即要预测的目标
2. 去除demand列,符合最后的提交格式 
"""

sample_submit = electricity_price[electricity_price["clearing price (CNY/MWh)"].isna()].drop(columns="demand")
sample_submit.to_csv(base_path / "sample_submit.csv", index=False)

因为源文件中测试集2023年7月1日到2024年4月18日的出清价格为空,所以可以用pd.DataFrame.isna()方法,检查DataFrame中的缺失值(NaN),返回一个布尔值的DataFrame,其中True表示缺失值。electricity_price[electricity_price["clearing price (CNY/MWh)"].isna()],True的位置数据被保留,False的数据会被过滤,即获取electricity_price中的测试集。

再使用pd.DataFrame.drop()删除DataFrame中的指定列或行。这里就是.drop(columns="demand")把demand列删除。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值