From 98e0178da03642b9f3a0c4e1a177d1c1b63e0716 Mon Sep 17 00:00:00 2001 From: workpc Date: Mon, 30 Dec 2024 14:00:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A2=84=E6=B5=8B=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E6=9B=B4=E6=96=B0=E5=88=B0=E8=AE=B0=E5=BD=95=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../日度价格预测_液化气最佳模型.pkl | Bin 261197 -> 297700 bytes .../液化石油气/液化气价格预测ytj.ipynb | 1455 ++--------------- aisenzhecode/液化石油气/液化气数据.xls | Bin 162304 -> 166400 bytes config_jingbo.py | 232 ++- lib/dataread.py | 4 +- main_yongan.py | 288 ++++ main_yuanyou.py | 392 ++--- models/nerulforcastmodels.py | 25 +- 8 files changed, 706 insertions(+), 1690 deletions(-) create mode 100644 main_yongan.py diff --git a/aisenzhecode/液化石油气/日度价格预测_液化气最佳模型.pkl b/aisenzhecode/液化石油气/日度价格预测_液化气最佳模型.pkl index 509bab49e3845e0d9d087b21eda936798abd5874..f2c685e2e9ab67dd84a196dc112be86391e256a8 100644 GIT binary patch literal 297700 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≫e|2DU^R*I2})x4DGLo`6KBwT4`32<>?ti$6HZD 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 F{};@dEq?$2 literal 261197 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 diff --git a/aisenzhecode/液化石油气/液化气价格预测ytj.ipynb b/aisenzhecode/液化石油气/液化气价格预测ytj.ipynb index 4f475c8..68e16bb 100644 --- a/aisenzhecode/液化石油气/液化气价格预测ytj.ipynb +++ b/aisenzhecode/液化石油气/液化气价格预测ytj.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 12, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -722,34 +722,57 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "20241101\n", - "{'dataDate': '20241101', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241101', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" + "20241213\n", + "{'dataDate': '20241213', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:291: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:293: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using matplotlib backend: \n", + "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", + "Populating the interactive namespace from numpy and matplotlib\n", + "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\magics\\pylab.py:162: UserWarning:\n", "\n", - "pylab import has clobbered these variables: ['__version__', 'plot', 'datetime', 'random']\n", + "pylab import has clobbered these variables: ['plot', 'datetime', 'random', '__version__']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", + "\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:240: UserWarning:\n", + "\n", + "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", + "\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:242: UserWarning:\n", + "\n", + "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n" ] }, @@ -757,25 +780,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" + "Date\n", + "2024-12-13 5284.853516\n", + "Name: 日度预测价格, dtype: float32\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:274: FutureWarning:\n", "\n", "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", "\n" @@ -785,24 +799,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "Date\n", - "2024-11-01 4799.513672\n", - "Name: 日度预测价格, dtype: float32\n", "{\"confirmFlg\":false,\"status\":true}\n", - "20241102\n", - "{'dataDate': '20241102', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241102', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" + "20241214\n", + "{'dataDate': '20241214', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:291: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:293: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n" @@ -822,15 +832,30 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:240: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:242: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Date\n", + "2024-12-14 5230.033691\n", + "Name: 日度预测价格, dtype: float32\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:274: FutureWarning:\n", "\n", "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", "\n" @@ -840,24 +865,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "Date\n", - "2024-11-02 4803.988281\n", - "Name: 日度预测价格, dtype: float32\n", "{\"confirmFlg\":false,\"status\":true}\n", - "20241103\n", - "{'dataDate': '20241103', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241103', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" + "20241215\n", + "{'dataDate': '20241215', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:291: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:293: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n" @@ -877,15 +898,30 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:240: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:242: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", + "\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Date\n", + "2024-12-15 5229.949707\n", + "Name: 日度预测价格, dtype: float32\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:274: FutureWarning:\n", "\n", "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", "\n" @@ -895,24 +931,20 @@ "name": "stdout", "output_type": "stream", "text": [ - "Date\n", - "2024-11-03 4752.453125\n", - "Name: 日度预测价格, dtype: float32\n", "{\"confirmFlg\":false,\"status\":true}\n", - "20241104\n", - "{'dataDate': '20241104', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241104', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" + "20241216\n", + "{'dataDate': '20241216', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:291: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:293: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n" @@ -932,15 +964,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:240: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:242: UserWarning:\n", "\n", "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_20960\\2946673419.py:274: FutureWarning:\n", "\n", "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", "\n" @@ -951,1310 +983,7 @@ "output_type": "stream", "text": [ "Date\n", - "2024-11-04 4749.770508\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241105\n", - "{'dataDate': '20241105', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241105', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-05 4729.610352\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241106\n", - "{'dataDate': '20241106', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241106', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-06 4755.190918\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241107\n", - "{'dataDate': '20241107', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241107', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-07 4751.669434\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241108\n", - "{'dataDate': '20241108', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241108', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-08 4779.73584\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241109\n", - "{'dataDate': '20241109', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241109', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-09 4770.091797\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241110\n", - "{'dataDate': '20241110', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241110', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-10 4770.462402\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241111\n", - "{'dataDate': '20241111', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241111', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-11 4787.013672\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241112\n", - "{'dataDate': '20241112', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n", - "{'dataDate': '20241112', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-12 4829.234863\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241113\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-13 4825.259766\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241114\n", - "{'dataDate': '20241114', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-14 4886.885742\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241115\n", - "{'dataDate': '20241115', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-15 4999.224609\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241116\n", - "{'dataDate': '20241116', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-16 4999.256348\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241117\n", - "{'dataDate': '20241117', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-17 4906.539551\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241118\n", - "{'dataDate': '20241118', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-18 4864.897949\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241119\n", - "{'dataDate': '20241119', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-19 4848.118164\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241120\n", - "{'dataDate': '20241120', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-20 4886.458496\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241121\n", - "{'dataDate': '20241121', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-21 4939.601562\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241122\n", - "{'dataDate': '20241122', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-22 4911.041992\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241123\n", - "{'dataDate': '20241123', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-23 4948.775391\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241124\n", - "{'dataDate': '20241124', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-24 4933.570312\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241125\n", - "{'dataDate': '20241125', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-25 4892.017578\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241126\n", - "{'dataDate': '20241126', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-26 4840.280273\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241127\n", - "{'dataDate': '20241127', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-27 4840.000488\n", - "Name: 日度预测价格, dtype: float32\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20241128\n", - "{'dataDate': '20241128', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:291: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:293: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using matplotlib backend: QtAgg\n", - "%pylab is deprecated, use %matplotlib inline and import the required libraries.\n", - "Populating the interactive namespace from numpy and matplotlib\n", - "Fitting 3 folds for each of 180 candidates, totalling 540 fits\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:240: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:242: UserWarning:\n", - "\n", - "The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_18460\\2946673419.py:274: FutureWarning:\n", - "\n", - "Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Date\n", - "2024-11-28 4848.003906\n", + "2024-12-16 5240.49707\n", "Name: 日度预测价格, dtype: float32\n", "{\"confirmFlg\":false,\"status\":true}\n" ] @@ -2263,8 +992,8 @@ "source": [ "from datetime import datetime, timedelta\n", "\n", - "start_date = datetime(2024, 11, 1)\n", - "end_date = datetime(2024, 11, 29)\n", + "start_date = datetime(2024, 12, 13)\n", + "end_date = datetime(2024, 12, 17)\n", "\n", "while start_date < end_date:\n", " print(start_date.strftime('%Y%m%d'))\n", diff --git a/aisenzhecode/液化石油气/液化气数据.xls b/aisenzhecode/液化石油气/液化气数据.xls index 1f552bb267b8066ae19ccab99835e4a130aa097d..11e4832ee5c99bc24aab6723c32bfd252464f05f 100644 GIT binary patch delta 4525 zcma*rdu$X%90%~Zp{>vY(gzI!tx&w%d+pus-UDc{)bbFklshW zo6pYg_nWCOd|z>GqCc z@5Jn#xV@9GcarwbQhR4vo4sdE!BBPk6m-m-P4ZLmLFxX6s^1QTw zbw>eT-1tGD>qjw8EVC$R-{_7sTHVyIpO{J%S|b$l_{$I zP&fObZZ*|@7q#D^_D@jr*buSom$B@pg9~Z#Y`(PV&^=y<(Dh4>-{KVd!BJN&{Jr(h zH^K3z@*kolc~*=D#JmHT_ao-K11|FpIOZL|ywBTW)S7od&O1O;k;R^3bsQ5H?Qvvb za1*ESP|Qa#2BafkIpzo8SbOTP>l>FHg(HAv8CsLlw$S3dhW+W_3yRn)C0j^%L-1}jy&-r-vCH&^9NrMTTiESOd->uBZ%BGW z@D4ZfQOD4pKr6iL9g}-Q(i^gQL-1aXey;SLdmY{oyjRxpkKnglRK;{jrO&0;H!Qqi zcpo#pVHa=M;SIZZ!_pg`y0>*BpQ{zWVd)LqykU4BsIL6=!nIf74Z|CRw+vY!)M9-t zuPVGMypNk+)y1niysC>=HNB-ooy1F7JeymHno&$uM=@2UTD7TFsK4vkv$kl*%TTMX zYAcH)LLGs+%~VHR)Ded|;-Zd7b>!yiNQOG%P)DRXVpB&%Y>zHqGPdXys3TKUM};~H zb-SsKLS2n5Ju{c14s{gjaa%4Av5F^hIVxj23Uv+2t_a>g5W-EUV2;|A8QW3mjoQ3X zct3oviL1w6%~a#)2B(FMhn@fGpVI5v_w1vYEX9lTi#K-N5rxQ z<$OH&i5*R3uuu;5q?Ni*>QHVsmAYN2JCr(rl1^# za(Hv<<2q_o7!dTG{o8-3NMxTeML`ULxiJWKn1UDty#w`QbGu>=K+FXYlgktX;4H%M zBJ!*f=QRjMu|o?$&HemVSQ|-9E>mp6GR1%_E#9_%PpS_o7js2g+eut3Qyj>hCNd7> za6M8k?oh^ElyOs8O5#xV!Y7^&_TjvjB|P>IHp2N0BnRHPmWyB_-6#GNLgotfG;S>>D+vbeer1T{-BX&g+%FFeim7c2+ z-zJl;N)fS@>@S|8sZUyI(di>CbTsc&C%u$avW)$UWjQ;_*-^oc73{c^9hK}@dHTXW XdW&apKmCVx)6^HObX{uI({$v2jR>&5 delta 155 zcmZpe!qxDFbAkb*^+ZEy9t%bW21_8e0^*H{^BE@=aBgCn$SlI4$^Zmx48a+xsU?Q3 z4Dt*U;wLXpSm6B$*TgEiWNH5j)CYcTOzvDq;R zF>GU+o>0ytvfZJK=>YfkhH|D2EZdrx?yzkC)5gRCv`ArE2h&fc0;cJO 0: + # set_clause = ", ".join([f"{key} = '{value}'" for key, value in row_dict.items()]) + # sqlitedb.update_data('trueandpredict', set_clause, where_condition=f"ds = '{row.ds}'") + # continue + # sqlitedb.insert_data('trueandpredict', tuple(row_dict.values()), columns=row_dict.keys()) + + # # 更新accuracy表的y值 + # if not sqlitedb.check_table_exists('accuracy'): + # pass + # else: + # update_y = sqlitedb.select_data('accuracy',where_condition="y is null") + # if len(update_y) > 0: + # logger.info('更新accuracy表的y值') + # # 找到update_y 中ds且df中的y的行 + # update_y = update_y[update_y['ds']<=end_time] + # logger.info(f'要更新y的信息:{update_y}') + # try: + # for row in update_y.itertuples(index=False): + # row_dict = row._asdict() + # yy = df[df['ds']==row_dict['ds']]['y'].values[0] + # LOW = df[df['ds']==row_dict['ds']]['Brentzdj'].values[0] + # HIGH = df[df['ds']==row_dict['ds']]['Brentzgj'].values[0] + # sqlitedb.update_data('accuracy', f"y = {yy},LOW_PRICE = {LOW},HIGH_PRICE = {HIGH}", where_condition=f"ds = '{row_dict['ds']}'") + # except Exception as e: + # logger.info(f'更新accuracy表的y值失败:{e}') + + # import datetime + # # 判断当前日期是不是周一 + # is_weekday = datetime.datetime.now().weekday() == 0 + # if is_weekday: + # logger.info('今天是周一,更新预测模型') + # # 计算最近60天预测残差最低的模型名称 + # model_results = sqlitedb.select_data('trueandpredict', order_by="ds DESC", limit="60") + # # 删除空值率为40%以上的列 + # if len(model_results) > 10: + # model_results = model_results.dropna(thresh=len(model_results)*0.6,axis=1) + # # 删除空行 + # model_results = model_results.dropna() + # modelnames = model_results.columns.to_list()[2:] + # for col in model_results[modelnames].select_dtypes(include=['object']).columns: + # model_results[col] = model_results[col].astype(np.float32) + # # 计算每个预测值与真实值之间的偏差率 + # for model in modelnames: + # model_results[f'{model}_abs_error_rate'] = abs(model_results['y'] - model_results[model]) / model_results['y'] + # # 获取每行对应的最小偏差率值 + # min_abs_error_rate_values = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].min(), axis=1) + # # 获取每行对应的最小偏差率值对应的列名 + # min_abs_error_rate_column_name = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].idxmin(), axis=1) + # # 将列名索引转换为列名 + # min_abs_error_rate_column_name = min_abs_error_rate_column_name.map(lambda x: x.split('_')[0]) + # # 取出现次数最多的模型名称 + # most_common_model = min_abs_error_rate_column_name.value_counts().idxmax() + # logger.info(f"最近60天预测残差最低的模型名称:{most_common_model}") + # # 保存结果到数据库 + # if not sqlitedb.check_table_exists('most_model'): + # sqlitedb.create_table('most_model', columns="ds datetime, most_common_model TEXT") + # sqlitedb.insert_data('most_model', (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), most_common_model,), columns=('ds', 'most_common_model',)) + + # try: + # if is_weekday: + # # if True: + # logger.info('今天是周一,发送特征预警') + # # 上传预警信息到数据库 + # warning_data_df = df_zhibiaoliebiao.copy() + # warning_data_df = warning_data_df[warning_data_df['停更周期']> 3 ][['指标名称', '指标id', '频度','更新周期','指标来源','最后更新时间','停更周期']] + # # 重命名列名 + # warning_data_df = warning_data_df.rename(columns={'指标名称': 'INDICATOR_NAME', '指标id': 'INDICATOR_ID', '频度': 'FREQUENCY', '更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'UPDATE_SUSPENSION_CYCLE'}) + # from sqlalchemy import create_engine + # import urllib + # global password + # if '@' in password: + # password = urllib.parse.quote_plus(password) + + # engine = create_engine(f'mysql+pymysql://{dbusername}:{password}@{host}:{port}/{dbname}') + # warning_data_df['WARNING_DATE'] = datetime.date.today().strftime("%Y-%m-%d %H:%M:%S") + # warning_data_df['TENANT_CODE'] = 'T0004' + # # 插入数据之前查询表数据然后新增id列 + # existing_data = pd.read_sql(f"SELECT * FROM {table_name}", engine) + # if not existing_data.empty: + # max_id = existing_data['ID'].astype(int).max() + # warning_data_df['ID'] = range(max_id + 1, max_id + 1 + len(warning_data_df)) + # else: + # warning_data_df['ID'] = range(1, 1 + len(warning_data_df)) + # warning_data_df.to_sql(table_name, con=engine, if_exists='append', index=False) + # if is_update_warning_data: + # upload_warning_info(len(warning_data_df)) + # except: + # logger.info('上传预警信息到数据库失败') + + # if is_corr: + # df = corr_feature(df=df) + + # df1 = df.copy() # 备份一下,后面特征筛选完之后加入ds y 列用 + # logger.info(f"开始训练模型...") + # row, col = df.shape + + # now = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + # ex_Model(df, + # horizon=horizon, + # input_size=input_size, + # train_steps=train_steps, + # val_check_steps=val_check_steps, + # early_stop_patience_steps=early_stop_patience_steps, + # is_debug=is_debug, + # dataset=dataset, + # is_train=is_train, + # is_fivemodels=is_fivemodels, + # val_size=val_size, + # test_size=test_size, + # settings=settings, + # now=now, + # etadata=etadata, + # modelsindex=modelsindex, + # data=data, + # is_eta=is_eta, + # end_time=end_time, + # ) + + + # logger.info('模型训练完成') + + # logger.info('训练数据绘图ing') + # model_results3 = model_losss(sqlitedb,end_time=end_time) + # logger.info('训练数据绘图end') + + # 模型报告 + logger.info('制作报告ing') + title = f'{settings}--{end_time}-预测报告' # 报告标题 + reportname = f'Brent原油大模型预测--{end_time}.pdf' # 报告文件名 + reportname = reportname.replace(':', '-') # 替换冒号 + brent_export_pdf(dataset=dataset,num_models = 5 if is_fivemodels else 22,time=end_time, + reportname=reportname,sqlitedb=sqlitedb), + + logger.info('制作报告end') + logger.info('模型训练完成') + + # # LSTM 单变量模型 + # ex_Lstm(df,input_seq_len=input_size,output_seq_len=horizon,is_debug=is_debug,dataset=dataset) + + # # lstm 多变量模型 + # ex_Lstm_M(df,n_days=input_size,out_days=horizon,is_debug=is_debug,datasetpath=dataset) + + # # GRU 模型 + # # ex_GRU(df) + + # 发送邮件 + # m = SendMail( + # username=username, + # passwd=passwd, + # recv=recv, + # title=title, + # content=content, + # file=max(glob.glob(os.path.join(dataset,'*.pdf')), key=os.path.getctime), + # ssl=ssl, + # ) + # m.send_mail() + + +if __name__ == '__main__': + global end_time + is_on = True + # 遍历2024-11-25 到 2024-12-3 之间的工作日日期 + for i_time in pd.date_range('2024-12-27', '2024-12-28', freq='B'): + end_time = i_time.strftime('%Y-%m-%d') + predict_main() diff --git a/main_yuanyou.py b/main_yuanyou.py index e1be026..dc5825f 100644 --- a/main_yuanyou.py +++ b/main_yuanyou.py @@ -48,203 +48,203 @@ def predict_main(): 返回: None """ - # global end_time - # signature = BinanceAPI(APPID, SECRET) - # etadata = EtaReader(signature=signature, - # classifylisturl=classifylisturl, - # classifyidlisturl=classifyidlisturl, - # edbcodedataurl=edbcodedataurl, - # edbcodelist=edbcodelist, - # edbdatapushurl=edbdatapushurl, - # edbdeleteurl=edbdeleteurl, - # edbbusinessurl=edbbusinessurl - # ) - # # 获取数据 - # if is_eta: - # logger.info('从eta获取数据...') - # signature = BinanceAPI(APPID, SECRET) - # etadata = EtaReader(signature=signature, - # classifylisturl=classifylisturl, - # classifyidlisturl=classifyidlisturl, - # edbcodedataurl=edbcodedataurl, - # edbcodelist=edbcodelist, - # edbdatapushurl=edbdatapushurl, - # edbdeleteurl=edbdeleteurl, - # edbbusinessurl=edbbusinessurl, - # ) - # df_zhibiaoshuju, df_zhibiaoliebiao = etadata.get_eta_api_yuanyou_data(data_set=data_set, dataset=dataset) # 原始数据,未处理 + global end_time + signature = BinanceAPI(APPID, SECRET) + etadata = EtaReader(signature=signature, + classifylisturl=classifylisturl, + classifyidlisturl=classifyidlisturl, + edbcodedataurl=edbcodedataurl, + edbcodelist=edbcodelist, + edbdatapushurl=edbdatapushurl, + edbdeleteurl=edbdeleteurl, + edbbusinessurl=edbbusinessurl + ) + # 获取数据 + if is_eta: + logger.info('从eta获取数据...') + signature = BinanceAPI(APPID, SECRET) + etadata = EtaReader(signature=signature, + classifylisturl=classifylisturl, + classifyidlisturl=classifyidlisturl, + edbcodedataurl=edbcodedataurl, + edbcodelist=edbcodelist, + edbdatapushurl=edbdatapushurl, + edbdeleteurl=edbdeleteurl, + edbbusinessurl=edbbusinessurl, + ) + df_zhibiaoshuju, df_zhibiaoliebiao = etadata.get_eta_api_yuanyou_data(data_set=data_set, dataset=dataset) # 原始数据,未处理 - # if is_market: - # logger.info('从市场信息平台获取数据...') - # try: - # df_zhibiaoshuju = get_market_data(end_time,df_zhibiaoshuju) - # except : - # logger.info('从市场信息平台获取数据失败') + if is_market: + logger.info('从市场信息平台获取数据...') + try: + df_zhibiaoshuju = get_market_data(end_time,df_zhibiaoshuju) + except : + logger.info('从市场信息平台获取数据失败') - # # 保存到xlsx文件的sheet表 - # with pd.ExcelWriter(os.path.join(dataset,data_set)) as file: - # df_zhibiaoshuju.to_excel(file, sheet_name='指标数据', index=False) - # df_zhibiaoliebiao.to_excel(file, sheet_name='指标列表', index=False) + # 保存到xlsx文件的sheet表 + with pd.ExcelWriter(os.path.join(dataset,data_set)) as file: + df_zhibiaoshuju.to_excel(file, sheet_name='指标数据', index=False) + df_zhibiaoliebiao.to_excel(file, sheet_name='指标列表', index=False) - # # 数据处理 - # df = datachuli(df_zhibiaoshuju, df_zhibiaoliebiao, y=y, dataset=dataset, add_kdj=add_kdj, is_timefurture=is_timefurture, - # end_time=end_time) + # 数据处理 + df = datachuli(df_zhibiaoshuju, df_zhibiaoliebiao, y=y, dataset=dataset, add_kdj=add_kdj, is_timefurture=is_timefurture, + end_time=end_time) - # else: - # # 读取数据 - # logger.info('读取本地数据:' + os.path.join(dataset, data_set)) - # df,df_zhibiaoliebiao = getdata(filename=os.path.join(dataset, data_set), y=y, dataset=dataset, add_kdj=add_kdj, - # is_timefurture=is_timefurture, end_time=end_time) # 原始数据,未处理 + else: + # 读取数据 + logger.info('读取本地数据:' + os.path.join(dataset, data_set)) + df,df_zhibiaoliebiao = getdata(filename=os.path.join(dataset, data_set), y=y, dataset=dataset, add_kdj=add_kdj, + is_timefurture=is_timefurture, end_time=end_time) # 原始数据,未处理 - # # 更改预测列名称 - # df.rename(columns={y: 'y'}, inplace=True) + # 更改预测列名称 + df.rename(columns={y: 'y'}, inplace=True) - # if is_edbnamelist: - # df = df[edbnamelist] - # df.to_csv(os.path.join(dataset, '指标数据.csv'), index=False) - # # 保存最新日期的y值到数据库 - # # 取第一行数据存储到数据库中 - # first_row = df[['ds', 'y']].tail(1) - # print(first_row['ds'].values[0]) - # print(first_row['y'].values[0]) - # # 判断y的类型是否为float - # if not isinstance(first_row['y'].values[0], float): - # logger.info(f'{end_time}预测目标数据为空,跳过') - # return None + if is_edbnamelist: + df = df[edbnamelist] + df.to_csv(os.path.join(dataset, '指标数据.csv'), index=False) + # 保存最新日期的y值到数据库 + # 取第一行数据存储到数据库中 + first_row = df[['ds', 'y']].tail(1) + print(first_row['ds'].values[0]) + print(first_row['y'].values[0]) + # 判断y的类型是否为float + if not isinstance(first_row['y'].values[0], float): + logger.info(f'{end_time}预测目标数据为空,跳过') + return None - # # 将最新真实值保存到数据库 - # if not sqlitedb.check_table_exists('trueandpredict'): - # first_row.to_sql('trueandpredict', sqlitedb.connection, index=False) - # else: - # for row in first_row.itertuples(index=False): - # row_dict = row._asdict() - # row_dict['ds'] = row_dict['ds'].strftime('%Y-%m-%d %H:%M:%S') - # check_query = sqlitedb.select_data('trueandpredict', where_condition=f"ds = '{row.ds}'") - # if len(check_query) > 0: - # set_clause = ", ".join([f"{key} = '{value}'" for key, value in row_dict.items()]) - # sqlitedb.update_data('trueandpredict', set_clause, where_condition=f"ds = '{row.ds}'") - # continue - # sqlitedb.insert_data('trueandpredict', tuple(row_dict.values()), columns=row_dict.keys()) + # 将最新真实值保存到数据库 + if not sqlitedb.check_table_exists('trueandpredict'): + first_row.to_sql('trueandpredict', sqlitedb.connection, index=False) + else: + for row in first_row.itertuples(index=False): + row_dict = row._asdict() + row_dict['ds'] = row_dict['ds'].strftime('%Y-%m-%d %H:%M:%S') + check_query = sqlitedb.select_data('trueandpredict', where_condition=f"ds = '{row.ds}'") + if len(check_query) > 0: + set_clause = ", ".join([f"{key} = '{value}'" for key, value in row_dict.items()]) + sqlitedb.update_data('trueandpredict', set_clause, where_condition=f"ds = '{row.ds}'") + continue + sqlitedb.insert_data('trueandpredict', tuple(row_dict.values()), columns=row_dict.keys()) - # # 更新accuracy表的y值 - # if not sqlitedb.check_table_exists('accuracy'): - # pass - # else: - # update_y = sqlitedb.select_data('accuracy',where_condition="y is null") - # if len(update_y) > 0: - # logger.info('更新accuracy表的y值') - # # 找到update_y 中ds且df中的y的行 - # update_y = update_y[update_y['ds']<=end_time] - # logger.info(f'要更新y的信息:{update_y}') - # try: - # for row in update_y.itertuples(index=False): - # row_dict = row._asdict() - # yy = df[df['ds']==row_dict['ds']]['y'].values[0] - # LOW = df[df['ds']==row_dict['ds']]['Brentzdj'].values[0] - # HIGH = df[df['ds']==row_dict['ds']]['Brentzgj'].values[0] - # sqlitedb.update_data('accuracy', f"y = {yy},LOW_PRICE = {LOW},HIGH_PRICE = {HIGH}", where_condition=f"ds = '{row_dict['ds']}'") - # except Exception as e: - # logger.info(f'更新accuracy表的y值失败:{e}') + # 更新accuracy表的y值 + if not sqlitedb.check_table_exists('accuracy'): + pass + else: + update_y = sqlitedb.select_data('accuracy',where_condition="y is null") + if len(update_y) > 0: + logger.info('更新accuracy表的y值') + # 找到update_y 中ds且df中的y的行 + update_y = update_y[update_y['ds']<=end_time] + logger.info(f'要更新y的信息:{update_y}') + try: + for row in update_y.itertuples(index=False): + row_dict = row._asdict() + yy = df[df['ds']==row_dict['ds']]['y'].values[0] + LOW = df[df['ds']==row_dict['ds']]['Brentzdj'].values[0] + HIGH = df[df['ds']==row_dict['ds']]['Brentzgj'].values[0] + sqlitedb.update_data('accuracy', f"y = {yy},LOW_PRICE = {LOW},HIGH_PRICE = {HIGH}", where_condition=f"ds = '{row_dict['ds']}'") + except Exception as e: + logger.info(f'更新accuracy表的y值失败:{e}') - # import datetime - # # 判断当前日期是不是周一 - # is_weekday = datetime.datetime.now().weekday() == 0 - # if is_weekday: - # logger.info('今天是周一,更新预测模型') - # # 计算最近60天预测残差最低的模型名称 - # model_results = sqlitedb.select_data('trueandpredict', order_by="ds DESC", limit="60") - # # 删除空值率为40%以上的列 - # if len(model_results) > 10: - # model_results = model_results.dropna(thresh=len(model_results)*0.6,axis=1) - # # 删除空行 - # model_results = model_results.dropna() - # modelnames = model_results.columns.to_list()[2:] - # for col in model_results[modelnames].select_dtypes(include=['object']).columns: - # model_results[col] = model_results[col].astype(np.float32) - # # 计算每个预测值与真实值之间的偏差率 - # for model in modelnames: - # model_results[f'{model}_abs_error_rate'] = abs(model_results['y'] - model_results[model]) / model_results['y'] - # # 获取每行对应的最小偏差率值 - # min_abs_error_rate_values = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].min(), axis=1) - # # 获取每行对应的最小偏差率值对应的列名 - # min_abs_error_rate_column_name = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].idxmin(), axis=1) - # # 将列名索引转换为列名 - # min_abs_error_rate_column_name = min_abs_error_rate_column_name.map(lambda x: x.split('_')[0]) - # # 取出现次数最多的模型名称 - # most_common_model = min_abs_error_rate_column_name.value_counts().idxmax() - # logger.info(f"最近60天预测残差最低的模型名称:{most_common_model}") - # # 保存结果到数据库 - # if not sqlitedb.check_table_exists('most_model'): - # sqlitedb.create_table('most_model', columns="ds datetime, most_common_model TEXT") - # sqlitedb.insert_data('most_model', (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), most_common_model,), columns=('ds', 'most_common_model',)) + import datetime + # 判断当前日期是不是周一 + is_weekday = datetime.datetime.now().weekday() == 0 + if is_weekday: + logger.info('今天是周一,更新预测模型') + # 计算最近60天预测残差最低的模型名称 + model_results = sqlitedb.select_data('trueandpredict', order_by="ds DESC", limit="60") + # 删除空值率为90%以上的列 + if len(model_results) > 10: + model_results = model_results.dropna(thresh=len(model_results)*0.1,axis=1) + # 删除空行 + model_results = model_results.dropna() + modelnames = model_results.columns.to_list()[2:-1] + for col in model_results[modelnames].select_dtypes(include=['object']).columns: + model_results[col] = model_results[col].astype(np.float32) + # 计算每个预测值与真实值之间的偏差率 + for model in modelnames: + model_results[f'{model}_abs_error_rate'] = abs(model_results['y'] - model_results[model]) / model_results['y'] + # 获取每行对应的最小偏差率值 + min_abs_error_rate_values = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].min(), axis=1) + # 获取每行对应的最小偏差率值对应的列名 + min_abs_error_rate_column_name = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].idxmin(), axis=1) + # 将列名索引转换为列名 + min_abs_error_rate_column_name = min_abs_error_rate_column_name.map(lambda x: x.split('_')[0]) + # 取出现次数最多的模型名称 + most_common_model = min_abs_error_rate_column_name.value_counts().idxmax() + logger.info(f"最近60天预测残差最低的模型名称:{most_common_model}") + # 保存结果到数据库 + if not sqlitedb.check_table_exists('most_model'): + sqlitedb.create_table('most_model', columns="ds datetime, most_common_model TEXT") + sqlitedb.insert_data('most_model', (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), most_common_model,), columns=('ds', 'most_common_model',)) - # try: - # if is_weekday: - # # if True: - # logger.info('今天是周一,发送特征预警') - # # 上传预警信息到数据库 - # warning_data_df = df_zhibiaoliebiao.copy() - # warning_data_df = warning_data_df[warning_data_df['停更周期']> 3 ][['指标名称', '指标id', '频度','更新周期','指标来源','最后更新时间','停更周期']] - # # 重命名列名 - # warning_data_df = warning_data_df.rename(columns={'指标名称': 'INDICATOR_NAME', '指标id': 'INDICATOR_ID', '频度': 'FREQUENCY', '更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'UPDATE_SUSPENSION_CYCLE'}) - # from sqlalchemy import create_engine - # import urllib - # global password - # if '@' in password: - # password = urllib.parse.quote_plus(password) + try: + if is_weekday: + # if True: + logger.info('今天是周一,发送特征预警') + # 上传预警信息到数据库 + warning_data_df = df_zhibiaoliebiao.copy() + warning_data_df = warning_data_df[warning_data_df['停更周期']> 3 ][['指标名称', '指标id', '频度','更新周期','指标来源','最后更新时间','停更周期']] + # 重命名列名 + warning_data_df = warning_data_df.rename(columns={'指标名称': 'INDICATOR_NAME', '指标id': 'INDICATOR_ID', '频度': 'FREQUENCY', '更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'UPDATE_SUSPENSION_CYCLE'}) + from sqlalchemy import create_engine + import urllib + global password + if '@' in password: + password = urllib.parse.quote_plus(password) - # engine = create_engine(f'mysql+pymysql://{dbusername}:{password}@{host}:{port}/{dbname}') - # warning_data_df['WARNING_DATE'] = datetime.date.today().strftime("%Y-%m-%d %H:%M:%S") - # warning_data_df['TENANT_CODE'] = 'T0004' - # # 插入数据之前查询表数据然后新增id列 - # existing_data = pd.read_sql(f"SELECT * FROM {table_name}", engine) - # if not existing_data.empty: - # max_id = existing_data['ID'].astype(int).max() - # warning_data_df['ID'] = range(max_id + 1, max_id + 1 + len(warning_data_df)) - # else: - # warning_data_df['ID'] = range(1, 1 + len(warning_data_df)) - # warning_data_df.to_sql(table_name, con=engine, if_exists='append', index=False) - # if is_update_warning_data: - # upload_warning_info(len(warning_data_df)) - # except: - # logger.info('上传预警信息到数据库失败') + engine = create_engine(f'mysql+pymysql://{dbusername}:{password}@{host}:{port}/{dbname}') + warning_data_df['WARNING_DATE'] = datetime.date.today().strftime("%Y-%m-%d %H:%M:%S") + warning_data_df['TENANT_CODE'] = 'T0004' + # 插入数据之前查询表数据然后新增id列 + existing_data = pd.read_sql(f"SELECT * FROM {table_name}", engine) + if not existing_data.empty: + max_id = existing_data['ID'].astype(int).max() + warning_data_df['ID'] = range(max_id + 1, max_id + 1 + len(warning_data_df)) + else: + warning_data_df['ID'] = range(1, 1 + len(warning_data_df)) + warning_data_df.to_sql(table_name, con=engine, if_exists='append', index=False) + if is_update_warning_data: + upload_warning_info(len(warning_data_df)) + except: + logger.info('上传预警信息到数据库失败') - # if is_corr: - # df = corr_feature(df=df) + if is_corr: + df = corr_feature(df=df) - # df1 = df.copy() # 备份一下,后面特征筛选完之后加入ds y 列用 - # logger.info(f"开始训练模型...") - # row, col = df.shape + df1 = df.copy() # 备份一下,后面特征筛选完之后加入ds y 列用 + logger.info(f"开始训练模型...") + row, col = df.shape - # now = datetime.datetime.now().strftime('%Y%m%d%H%M%S') - # ex_Model(df, - # horizon=horizon, - # input_size=input_size, - # train_steps=train_steps, - # val_check_steps=val_check_steps, - # early_stop_patience_steps=early_stop_patience_steps, - # is_debug=is_debug, - # dataset=dataset, - # is_train=is_train, - # is_fivemodels=is_fivemodels, - # val_size=val_size, - # test_size=test_size, - # settings=settings, - # now=now, - # etadata=etadata, - # modelsindex=modelsindex, - # data=data, - # is_eta=is_eta, - # end_time=end_time, - # ) + now = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + ex_Model(df, + horizon=horizon, + input_size=input_size, + train_steps=train_steps, + val_check_steps=val_check_steps, + early_stop_patience_steps=early_stop_patience_steps, + is_debug=is_debug, + dataset=dataset, + is_train=is_train, + is_fivemodels=is_fivemodels, + val_size=val_size, + test_size=test_size, + settings=settings, + now=now, + etadata=etadata, + modelsindex=modelsindex, + data=data, + is_eta=is_eta, + end_time=end_time, + ) - # logger.info('模型训练完成') + logger.info('模型训练完成') - # logger.info('训练数据绘图ing') - # model_results3 = model_losss(sqlitedb,end_time=end_time) - # logger.info('训练数据绘图end') + logger.info('训练数据绘图ing') + model_results3 = model_losss(sqlitedb,end_time=end_time) + logger.info('训练数据绘图end') # 模型报告 logger.info('制作报告ing') @@ -267,22 +267,24 @@ def predict_main(): # # ex_GRU(df) # 发送邮件 - # m = SendMail( - # username=username, - # passwd=passwd, - # recv=recv, - # title=title, - # content=content, - # file=max(glob.glob(os.path.join(dataset,'*.pdf')), key=os.path.getctime), - # ssl=ssl, - # ) - # m.send_mail() + m = SendMail( + username=username, + passwd=passwd, + recv=recv, + title=title, + content=content, + file=max(glob.glob(os.path.join(dataset,'*.pdf')), key=os.path.getctime), + ssl=ssl, + ) + m.send_mail() if __name__ == '__main__': - global end_time - is_on = True - # 遍历2024-11-25 到 2024-12-3 之间的工作日日期 - for i_time in pd.date_range('2024-12-27', '2024-12-28', freq='B'): - end_time = i_time.strftime('%Y-%m-%d') - predict_main() + # global end_time + # is_on = True + # # 遍历2024-11-25 到 2024-12-3 之间的工作日日期 + # for i_time in pd.date_range('2024-12-27', '2024-12-28', freq='B'): + # end_time = i_time.strftime('%Y-%m-%d') + # predict_main() + + predict_main() \ No newline at end of file diff --git a/models/nerulforcastmodels.py b/models/nerulforcastmodels.py index 0181609..affe008 100644 --- a/models/nerulforcastmodels.py +++ b/models/nerulforcastmodels.py @@ -317,6 +317,28 @@ def model_losss(sqlitedb,end_time): except ValueError : df_predict['ds'] = pd.to_datetime(df_predict['ds'],format=r'%Y/%m/%d') + def first_row_to_database(df): + # # 取第一行数据存储到数据库中 + first_row = df.head(1) + first_row['ds'] = first_row['ds'].dt.strftime('%Y-%m-%d 00:00:00') + # 将预测结果保存到数据库 + if not sqlitedb.check_table_exists('trueandpredict'): + first_row.to_sql('trueandpredict',sqlitedb.connection,index=False) + else: + for col in first_row.columns: + sqlitedb.add_column_if_not_exists('trueandpredict',col,'TEXT') + for row in first_row.itertuples(index=False): + row_dict = row._asdict() + columns=row_dict.keys() + check_query = sqlitedb.select_data('trueandpredict',where_condition = f"ds = '{row.ds}'") + if len(check_query) > 0: + set_clause = ", ".join([f"{key} = '{value}'" for key, value in row_dict.items()]) + sqlitedb.update_data('trueandpredict',set_clause,where_condition = f"ds = '{row.ds}'") + continue + sqlitedb.insert_data('trueandpredict',tuple(row_dict.values()),columns=columns) + + first_row_to_database(df_predict) + df_combined3 = pd.concat([df_combined3, df_predict]).reset_index(drop=True) # 计算每个模型与最佳模型的绝对误差比例,根据设置的阈值rote筛选预测值显示最大最小值 @@ -1018,6 +1040,7 @@ def brent_export_pdf(num_indicators=475,num_models=21, num_dayindicator=202,inpu df4 = sqlitedb.select_data('accuracy_rote',order_by='结束日期 desc',limit=1) df4 = df4.T df4 = df4.reset_index() + df4 = df4.T data = df4.values.tolist() col_width = 500/len(df4.columns) content.append(Graphs.draw_table(col_width,*data)) @@ -1133,7 +1156,7 @@ def brent_export_pdf(num_indicators=475,num_models=21, num_dayindicator=202,inpu eval_df = eval_df.T # df重置索引 eval_df = eval_df.reset_index() - # eval_df = eval_df.T + eval_df = eval_df.T # # 添加表格 data = eval_df.values.tolist() col_width = 500/len(eval_df.columns)