1
0
Fork 0
wgz_forecast/pv/matrix2series.ipynb

638 lines
60 KiB
Plaintext
Raw Normal View History

2025-02-07 15:45:03 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>光伏用户编号</th>\n",
" <th>综合倍率</th>\n",
" <th>时间</th>\n",
" <th>p1</th>\n",
" <th>p2</th>\n",
" <th>p3</th>\n",
" <th>p4</th>\n",
" <th>p5</th>\n",
" <th>p6</th>\n",
" <th>p7</th>\n",
" <th>...</th>\n",
" <th>p87</th>\n",
" <th>p88</th>\n",
" <th>p89</th>\n",
" <th>p90</th>\n",
" <th>p91</th>\n",
" <th>p92</th>\n",
" <th>p93</th>\n",
" <th>p94</th>\n",
" <th>p95</th>\n",
" <th>p96</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>f1</td>\n",
" <td>80</td>\n",
" <td>2022-1-3 0:00</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>...</td>\n",
" <td>-0.0031</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0033</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0003</td>\n",
" <td>-0.0003</td>\n",
" <td>-0.0003</td>\n",
" <td>-0.0001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>f1</td>\n",
" <td>80</td>\n",
" <td>2022-1-4 0:00</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>...</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0031</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>f1</td>\n",
" <td>80</td>\n",
" <td>2022-1-5 0:00</td>\n",
" <td>-0.0003</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>...</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0017</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>f1</td>\n",
" <td>80</td>\n",
" <td>2022-1-6 0:00</td>\n",
" <td>-0.0003</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0003</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>...</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0016</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>f1</td>\n",
" <td>80</td>\n",
" <td>2022-1-7 0:00</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0003</td>\n",
" <td>...</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 99 columns</p>\n",
"</div>"
],
"text/plain": [
" 光伏用户编号 综合倍率 时间 p1 p2 p3 p4 p5 p6 \\\n",
"0 f1 80 2022-1-3 0:00 0.0000 0.0000 0.0000 0.0000 0.0 0.0000 \n",
"1 f1 80 2022-1-4 0:00 -0.0001 0.0000 -0.0001 0.0000 0.0 -0.0001 \n",
"2 f1 80 2022-1-5 0:00 -0.0003 -0.0001 0.0000 0.0000 0.0 -0.0001 \n",
"3 f1 80 2022-1-6 0:00 -0.0003 0.0000 -0.0003 -0.0001 0.0 0.0000 \n",
"4 f1 80 2022-1-7 0:00 0.0000 -0.0001 -0.0001 0.0000 0.0 -0.0001 \n",
"\n",
" p7 ... p87 p88 p89 p90 p91 p92 p93 \\\n",
"0 -0.0001 ... -0.0031 -0.0032 -0.0032 -0.0033 -0.0001 -0.0001 -0.0003 \n",
"1 -0.0001 ... -0.0032 -0.0032 -0.0032 -0.0031 -0.0001 0.0000 -0.0001 \n",
"2 -0.0001 ... -0.0016 -0.0016 -0.0016 -0.0017 0.0000 0.0000 0.0000 \n",
"3 0.0000 ... -0.0016 -0.0016 -0.0016 -0.0016 0.0000 0.0000 0.0000 \n",
"4 -0.0003 ... 0.0000 -0.0001 0.0000 0.0000 0.0000 -0.0001 0.0000 \n",
"\n",
" p94 p95 p96 \n",
"0 -0.0003 -0.0003 -0.0001 \n",
"1 -0.0001 -0.0001 -0.0001 \n",
"2 0.0000 0.0000 -0.0001 \n",
"3 -0.0001 0.0000 0.0000 \n",
"4 0.0000 0.0000 0.0000 \n",
"\n",
"[5 rows x 99 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv('./data/pv_original.csv')\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"use_data = data[data['光伏用户编号']=='f1'].sort_values(by='时间').drop(columns=data.columns[:3])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p1</th>\n",
" <th>p2</th>\n",
" <th>p3</th>\n",
" <th>p4</th>\n",
" <th>p5</th>\n",
" <th>p6</th>\n",
" <th>p7</th>\n",
" <th>p8</th>\n",
" <th>p9</th>\n",
" <th>p10</th>\n",
" <th>...</th>\n",
" <th>p87</th>\n",
" <th>p88</th>\n",
" <th>p89</th>\n",
" <th>p90</th>\n",
" <th>p91</th>\n",
" <th>p92</th>\n",
" <th>p93</th>\n",
" <th>p94</th>\n",
" <th>p95</th>\n",
" <th>p96</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0003</td>\n",
" <td>0.0000</td>\n",
" <td>...</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0003</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>...</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0031</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>...</td>\n",
" <td>-0.0023</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0019</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0003</td>\n",
" <td>0.0000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>...</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0033</td>\n",
" <td>-0.0032</td>\n",
" <td>-0.0033</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0019</td>\n",
" <td>-0.0015</td>\n",
" <td>-0.0017</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>...</td>\n",
" <td>-0.0016</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0017</td>\n",
" <td>-0.0016</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" <td>0.0000</td>\n",
" <td>-0.0001</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 96 columns</p>\n",
"</div>"
],
"text/plain": [
" p1 p2 p3 p4 p5 p6 p7 p8 p9 \\\n",
"7 0.0000 0.0000 0.0000 -0.0001 -0.0001 0.0000 0.0000 0.0000 -0.0003 \n",
"8 -0.0001 -0.0001 0.0000 0.0000 -0.0001 0.0000 -0.0003 0.0000 -0.0001 \n",
"9 -0.0001 -0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0001 \n",
"10 0.0000 0.0000 0.0000 -0.0001 0.0000 -0.0001 -0.0001 -0.0001 0.0000 \n",
"11 0.0000 0.0000 -0.0001 0.0000 -0.0001 -0.0001 -0.0001 0.0000 0.0000 \n",
"\n",
" p10 ... p87 p88 p89 p90 p91 p92 p93 \\\n",
"7 0.0000 ... -0.0017 -0.0017 -0.0017 -0.0017 -0.0001 0.0000 -0.0001 \n",
"8 0.0000 ... -0.0032 -0.0031 -0.0032 -0.0032 -0.0017 -0.0017 -0.0001 \n",
"9 -0.0001 ... -0.0023 -0.0016 -0.0016 -0.0019 0.0000 -0.0001 0.0000 \n",
"10 -0.0001 ... -0.0032 -0.0033 -0.0032 -0.0033 -0.0017 -0.0016 -0.0017 \n",
"11 0.0000 ... -0.0016 -0.0017 -0.0017 -0.0016 0.0000 0.0000 0.0000 \n",
"\n",
" p94 p95 p96 \n",
"7 0.0000 0.0000 0.0000 \n",
"8 0.0000 -0.0001 0.0000 \n",
"9 0.0000 -0.0003 0.0000 \n",
"10 -0.0019 -0.0015 -0.0017 \n",
"11 -0.0001 0.0000 -0.0001 \n",
"\n",
"[5 rows x 96 columns]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"use_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# 生成日期范围484天\n",
"dates = pd.date_range(start='2022-01-03', periods=484, freq='D')\n",
"# 生成每日的96个时间点15分钟间隔\n",
"time_offsets = pd.timedelta_range(start='0min', periods=96, freq='15min')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"# 创建完整的时间索引\n",
"datetime_index = dates.repeat(96) + np.tile(time_offsets, len(dates))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>0</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2022-01-03 00:00:00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2022-01-03 01:00:00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2022-01-03 02:00:00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2022-01-03 03:00:00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2022-01-03 04:00:00</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index 0\n",
"0 2022-01-03 00:00:00 0.0\n",
"1 2022-01-03 01:00:00 0.0\n",
"2 2022-01-03 02:00:00 0.0\n",
"3 2022-01-03 03:00:00 0.0\n",
"4 2022-01-03 04:00:00 0.0"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 展平数据并创建Series\n",
"data_series = pd.Series(use_data.values.flatten(), index=datetime_index)\n",
"\n",
"# 处理负值\n",
"data_series = data_series.clip(lower=0)\n",
"\n",
"# 按小时重采样求和\n",
"hourly_data = data_series.resample('h').sum().to_frame().reset_index()\n",
"\n",
"# 结果展示\n",
"hourly_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"hourly_data.columns = ['time', 'power']"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x77d18f188fd0>]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(hourly_data.power[:500])"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"hourly_data.to_csv('pv_data_hourly.csv', index=False, encoding='utf-8-sig')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "py39",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.21"
}
},
"nbformat": 4,
"nbformat_minor": 2
}