From ac8086d2d88803ad8476e92c37ea38943fe4f8ea Mon Sep 17 00:00:00 2001 From: workpc Date: Tue, 8 Apr 2025 10:13:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=AF=E8=8B=AF=E6=AF=8F=E6=9C=88=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9B=B4=E6=96=B0=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aisenzhecode/石油苯/日度价格预测_最佳模型.pkl | Bin 178996 -> 177432 bytes .../石油苯/纯苯价格预测-自定义日期ytj.ipynb | 1042 ++--------------- aisenzhecode/石油苯/纯苯数据项.xls | Bin 154112 -> 158208 bytes 3 files changed, 90 insertions(+), 952 deletions(-) diff --git a/aisenzhecode/石油苯/日度价格预测_最佳模型.pkl b/aisenzhecode/石油苯/日度价格预测_最佳模型.pkl index 06b4fce4c8e09f5f12621c6e63f1e47c450e8a60..b25f3a29882afc2aef3f31849e2e9a9e3a69171b 100644 GIT binary patch literal 177432 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�j&K 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

)Y13Ygy|OR)hCcb_ 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 z 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 tmB@?4HjP\n", " window.PlotlyConfig = {MathJaxConfig: 'local'};\n", " if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n", + " if (typeof require !== 'undefined') {\n", + " require.undef(\"plotly\");\n", + " requirejs.config({\n", + " paths: {\n", + " 'plotly': ['https://cdn.plot.ly/plotly-2.12.1.min']\n", + " }\n", + " });\n", + " require(['plotly'], function(Plotly) {\n", + " window._Plotly = Plotly;\n", + " });\n", + " }\n", " \n", - " \n", " " ] }, "metadata": {}, "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\h5218\\AppData\\Local\\Temp\\ipykernel_35936\\3451377547.py:725: DeprecationWarning:\n", - "\n", - "The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n", - "\n" - ] } ], "source": [ @@ -35,7 +35,7 @@ "import json\n", "import xlrd\n", "import xlwt\n", - "from datetime import datetime\n", + "from datetime import datetime,timedelta\n", "import time\n", "# 变量定义\n", "login_url = \"http://10.200.32.39/jingbo-api/api/server/login\"\n", @@ -96,7 +96,6 @@ "from sklearn.linear_model import Lasso\n", "from xgboost import XGBRegressor\n", "\n", - "import datetime\n", "import statsmodels.api as sm\n", "try:\n", " from keras.preprocessing.sequence import TimeseriesGenerator\n", @@ -191,8 +190,7 @@ "\n", "def get_cur_time(date=''):\n", " if date == '':\n", - " import datetime\n", - " now = datetime.datetime.now()\n", + " now = datetime.now()\n", " else:\n", " now = date\n", " year = now.year\n", @@ -222,22 +220,22 @@ "\n", "def upload_data_to_system(token_push,date):\n", " datavalue = forecast_price()\n", - " data = {\n", - " \"funcModule\": \"数据表信息列表\",\n", - " \"funcOperation\": \"新增\",\n", - " \"data\": [\n", - " {\"dataItemNo\": \"C01100047|FORECAST_PRICE\",\n", - " \"dataDate\": get_cur_time(date)[0],\n", - " \"dataStatus\": \"add\",\n", - " \"dataValue\": datavalue\n", - " }\n", + " # data = {\n", + " # \"funcModule\": \"数据表信息列表\",\n", + " # \"funcOperation\": \"新增\",\n", + " # \"data\": [\n", + " # {\"dataItemNo\": \"C01100047|FORECAST_PRICE\",\n", + " # \"dataDate\": get_cur_time(date)[0],\n", + " # \"dataStatus\": \"add\",\n", + " # \"dataValue\": datavalue\n", + " # }\n", "\n", - " ]\n", - " }\n", - " print(data)\n", - " headers = {\"Authorization\": token_push}\n", - " res = requests.post(url=upload_url, headers=headers, json=data, timeout=(3, 5))\n", - " print(res.text)\n", + " # ]\n", + " # }\n", + " # print(data)\n", + " # headers = {\"Authorization\": token_push}\n", + " # res = requests.post(url=upload_url, headers=headers, json=data, timeout=(3, 5))\n", + " # print(res.text)\n", "\n", " \n", "# def upload_data_to_system(token):\n", @@ -336,7 +334,6 @@ " from sklearn.linear_model import Lasso\n", " from xgboost import XGBRegressor\n", "\n", - " from datetime import datetime\n", " import statsmodels.api as sm\n", " try:\n", " from keras.preprocessing.sequence import TimeseriesGenerator\n", @@ -506,19 +503,17 @@ "\n", "\n", "\n", - "def start(date):\n", + "def start(date,token=None,token_push=None):\n", " read_xls_data()\n", "\n", - " token = get_head_auth()\n", - " if not token:\n", - " return\n", - " token_push = get_head_push_auth()\n", - " if not token_push:\n", - " return\n", + " if token == None:\n", + " token = get_head_auth()\n", + " token_push = get_head_push_auth()\n", "\n", " datas = get_data_value(token, one_cols[1:],date)\n", - "# if not datas:\n", - "# return\n", + " if not datas:\n", + " print(\"今天没有新数据\")\n", + " return\n", "\n", " # data_list = [two_cols, one_cols]\n", " append_rows = [get_cur_time(date)[1]]\n", @@ -536,7 +531,12 @@ " else:\n", " append_rows.append(\"\")\n", " save_xls(append_rows)\n", + " \n", + " # 获取当月的数据写入到指定文件,如果是补充数据,不需要执行\n", + " queryDataListItemNos()\n", + " # 模型训练\n", " optimize_Model()\n", + " # 上传预测数据\n", " upload_data_to_system(token_push,date)\n", " # data_list.append(three_cols)\n", " # write_xls(data_list)\n", @@ -701,7 +701,7 @@ "\n", "def save_queryDataListItemNos_xls(data_df,dataItemNoList):\n", "\n", - " current_year_month = datetime.datetime.now().strftime('%Y-%m')\n", + " current_year_month = datetime.now().strftime('%Y-%m')\n", " grouped = data_df.groupby(\"dataDate\")\n", "\n", " # 打开xls文件\n", @@ -768,16 +768,14 @@ "\n", "\n", "\n", - "def queryDataListItemNos():\n", + "def queryDataListItemNos(token=None):\n", " df = pd.read_excel('纯苯数据项.xls')\n", " dataItemNoList = df.iloc[0].tolist()[1:]\n", "\n", - " token = get_head_auth()\n", - " if not token:\n", - " return\n", - "\n", + " if token == None:\n", + " token = get_head_auth()\n", " # 获取当前日期\n", - " current_date = datetime.datetime.now()\n", + " current_date = datetime.now()\n", "\n", " # 获取当月1日\n", " first_day_of_month = current_date.replace(day=1)\n", @@ -800,32 +798,27 @@ "\n", "\n", "if __name__ == \"__main__\":\n", - " # queryDataListItemNos()\n", - " pass\n", - " # 需要单独运行放开\n", - " # start_1()\n", "\n", " # 每天定时12点运行\n", - " # while True:\n", - " # # 获取当前时间\n", - " # current_time = time.strftime(\"%H:%M:%S\", time.localtime())\n", - " # current_time_1 = time.strftime(\"%H:%M:%S\", time.localtime())\n", - " # # 获取当月的数据写入到指定文件\n", - " # queryDataListItemNos()\n", - "\n", - "\n", - " # # 判断当前时间是否为执行任务的时间点\n", - " # if current_time == \"09:15:00\":\n", - " # print(\"执行定时任务\")\n", - " # start()\n", - "\n", - " # # 休眠1秒钟,避免过多占用CPU资源\n", - " # time.sleep(1)\n", + " while True:\n", + " # 获取当前时间\n", + " current_time = time.strftime(\"%H:%M:%S\", time.localtime())\n", + " current_time_1 = time.strftime(\"%H:%M:%S\", time.localtime())\n", " \n", - " # elif current_time_1 == \"20:00:00\":\n", - " # print(\"更新数据\")\n", - " # start_1()\n", - " # time.sleep(1)\n", + "\n", + "\n", + " # 判断当前时间是否为执行任务的时间点\n", + " if current_time == \"09:15:00\":\n", + " print(\"执行定时任务\")\n", + " start()\n", + "\n", + " # 休眠1秒钟,避免过多占用CPU资源\n", + " time.sleep(1)\n", + " \n", + " elif current_time_1 == \"20:00:00\":\n", + " print(\"更新数据\")\n", + " start_1()\n", + " time.sleep(1)\n", "\n", "\n", "# # 检测数据准确性, 需要检测放开\n", @@ -835,84 +828,36 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "20250201\n", - "{'dataDate': '20250201', 'dataItemNo': 'C01100047|TURNOVER'}\n" + "20250408\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_31052\\2446979738.py:725: DeprecationWarning:\n", + "\n", + "The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n", + "\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_31052\\2446979738.py:279: 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", "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.321e+05, tolerance: 4.074e+04\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": [ + "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.083e+05, tolerance: 4.378e+04\n", + "\n", "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\magics\\pylab.py:162: UserWarning:\n", "\n", - "pylab import has clobbered these variables: ['datetime', '__version__', 'plot', 'random']\n", + "pylab import has clobbered these variables: ['plot', 'datetime', '__version__', 'random']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", - "\n", - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-01 7738.433105\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250201', 'dataStatus': 'add', 'dataValue': 7738.43}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250202\n", - "{'dataDate': '20250202', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.506e+05, tolerance: 4.089e+04\n", "\n" ] }, @@ -930,11 +875,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:233: UserWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_31052\\2446979738.py:232: 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_21000\\3095856616.py:263: FutureWarning:\n", + "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_31052\\2446979738.py:262: 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" @@ -945,832 +890,25 @@ "output_type": "stream", "text": [ "Date\n", - "2025-02-02 7700.021484\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250202', 'dataStatus': 'add', 'dataValue': 7700.02}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250203\n", - "{'dataDate': '20250203', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.696e+05, tolerance: 4.096e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-03 7693.463379\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250203', 'dataStatus': 'add', 'dataValue': 7693.46}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250204\n", - "{'dataDate': '20250204', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.780e+05, tolerance: 4.200e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-04 7798.116211\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250204', 'dataStatus': 'add', 'dataValue': 7798.12}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250205\n", - "{'dataDate': '20250205', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.551e+05, tolerance: 4.144e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-05 7865.974609\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250205', 'dataStatus': 'add', 'dataValue': 7865.97}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250206\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.553e+05, tolerance: 4.144e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-06 7896.265137\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250206', 'dataStatus': 'add', 'dataValue': 7896.27}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250207\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.955e+05, tolerance: 4.168e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-07 7841.537109\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250207', 'dataStatus': 'add', 'dataValue': 7841.54}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250208\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.733e+05, tolerance: 4.197e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-08 7814.474609\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250208', 'dataStatus': 'add', 'dataValue': 7814.47}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250209\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.675e+05, tolerance: 4.062e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-09 7832.284668\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250209', 'dataStatus': 'add', 'dataValue': 7832.28}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250210\n", - "{'dataDate': '20250210', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.531e+05, tolerance: 4.103e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-10 7917.837891\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250210', 'dataStatus': 'add', 'dataValue': 7917.84}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250211\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.307e+05, tolerance: 4.073e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-11 7919.563965\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250211', 'dataStatus': 'add', 'dataValue': 7919.56}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250212\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.644e+05, tolerance: 4.133e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-12 7902.145508\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250212', 'dataStatus': 'add', 'dataValue': 7902.15}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250213\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.711e+05, tolerance: 4.105e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-13 8001.087891\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250213', 'dataStatus': 'add', 'dataValue': 8001.09}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250214\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.949e+05, tolerance: 4.129e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-14 8032.705566\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250214', 'dataStatus': 'add', 'dataValue': 8032.71}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250215\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.966e+05, tolerance: 4.129e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-15 8040.26709\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250215', 'dataStatus': 'add', 'dataValue': 8040.27}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250216\n", - "{'dataDate': '20250216', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.442e+05, tolerance: 4.138e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-16 8044.537109\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250216', 'dataStatus': 'add', 'dataValue': 8044.54}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250217\n", - "{'dataDate': '20250217', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.555e+05, tolerance: 4.072e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-17 7998.32373\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250217', 'dataStatus': 'add', 'dataValue': 7998.32}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n", - "20250218\n", - "{'dataDate': '20250218', 'dataItemNo': 'C01100047|TURNOVER'}\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_21000\\3095856616.py:280: 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", - "d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n", - "\n", - "Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.680e+05, tolerance: 4.121e+04\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_21000\\3095856616.py:233: 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_21000\\3095856616.py:263: 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", - "2025-02-18 7988.078125\n", - "Name: 日度预测价格, dtype: float32\n", - "{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250218', 'dataStatus': 'add', 'dataValue': 7988.08}]}\n", - "{\"confirmFlg\":false,\"status\":true}\n" + "2025-04-08 6302.519043\n", + "Name: 日度预测价格, dtype: float32\n" ] } ], "source": [ - "from datetime import datetime, timedelta\n", + "# # 自定义日期执行预测\n", "\n", - "start_date = datetime(2025, 2, 1)\n", - "end_date = datetime(2025, 2, 19)\n", + "# start_date = datetime(2025, 4, 8)\n", + "# end_date = datetime(2025, 4, 9)\n", "\n", - "while start_date < end_date:\n", - " print(start_date.strftime('%Y%m%d'))\n", - " start(start_date)\n", - " # time.sleep(2)\n", - " # start_1(start_date)\n", - " start_date += timedelta(days=1)" + "# token = get_head_auth()\n", + "# token_push = get_head_push_auth()\n", + "# while start_date < end_date:\n", + "# print(start_date.strftime('%Y%m%d'))\n", + "# start(start_date,token,token_push)\n", + "# time.sleep(2)\n", + "# # start_1(start_date)\n", + "# start_date += timedelta(days=1)" ] }, { @@ -1783,7 +921,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "base", "language": "python", "name": "python3" }, @@ -1797,7 +935,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.4" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/aisenzhecode/石油苯/纯苯数据项.xls b/aisenzhecode/石油苯/纯苯数据项.xls index 5594fe5442a12b510f9de02a03a43147a78d4be0..e5678833ec0fdeae05b4333c5dc4a8ad32f1b3d2 100644 GIT binary patch delta 8291 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