PriceForecast/聚烯烃预测值绘图调试.ipynb
2024-11-21 10:10:59 +08:00

4173 lines
504 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "code",
"execution_count": 30,
"id": "7fadc60c-d710-4b8c-89cd-1d889ece1eaf",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"读取本地数据juxitingdataset\\PP指标数据.xlsx\n",
"读取本地数据juxitingdataset\\PP指标数据.xlsx\n",
"getdata接收juxitingdataset\\PP指标数据.xlsx date \n",
"getdata接收juxitingdataset\\PP指标数据.xlsx date \n",
"删除两月不更新特征前数据量:(2516, 354)\n",
"删除两月不更新特征前数据量:(2516, 354)\n",
"删除两月不更新特征后数据量:(2516, 312)\n",
"删除两月不更新特征后数据量:(2516, 312)\n",
"删除预测列为空值的行后数据量:(772, 312)\n",
"删除预测列为空值的行后数据量:(772, 312)\n",
"删除全为空值的列后数据量:(772, 312)\n",
"删除全为空值的列后数据量:(772, 312)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
"d:\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" values.dropna(inplace=True,axis=0)\n",
" 日度(216) 周度(94) 154天(1)\n",
"0 PP主力收盘价拟合残差/丙烷 CP M1 PE注塑开工率/周 中国华东地区市场平均价BOPP厚光膜\n",
"1 华南聚丙烯基差(折盘面收盘价) PP看跌比例中国 \n",
"2 华北聚丙烯基差(折盘面收盘价) PP看平比例中国 \n",
"3 华东聚丙烯基差(折盘面收盘价) PP看升比例中国 \n",
"4 煤制聚丙烯利润 PP看空情绪指数环差 \n",
".. ... ... ...\n",
"211 PE期货收盘价 \n",
"212 PP连续-1月 \n",
"213 PP连续-5月 \n",
"214 PP连续-9月 \n",
"215 y \n",
"\n",
"[216 rows x 3 columns]\n",
" 日度(216) 周度(94) 154天(1)\n",
"0 PP主力收盘价拟合残差/丙烷 CP M1 PE注塑开工率/周 中国华东地区市场平均价BOPP厚光膜\n",
"1 华南聚丙烯基差(折盘面收盘价) PP看跌比例中国 \n",
"2 华北聚丙烯基差(折盘面收盘价) PP看平比例中国 \n",
"3 华东聚丙烯基差(折盘面收盘价) PP看升比例中国 \n",
"4 煤制聚丙烯利润 PP看空情绪指数环差 \n",
".. ... ... ...\n",
"211 PE期货收盘价 \n",
"212 PP连续-1月 \n",
"213 PP连续-5月 \n",
"214 PP连续-9月 \n",
"215 y \n",
"\n",
"[216 rows x 3 columns]\n",
"特征信息总共有309个,日度(216),周度(94),154天(1), 详看 附1、特征列表\n",
" 数据特征工程:\n",
" 1. 数据日期排序,新日期在最后\n",
" 2. 删除空列,特征数据列没有值,就删除\n",
" 3. 删除近两月不再更新值的指标\n",
" 4. 非日度数据填充为日度数据,填充规则:\n",
" -- 向后填充,举例:假设周五出现一个周度指标数据,那么在这之前的数据用上周五的数据\n",
" -- 向前填充举例采集数据开始日期为2018年1月1日那么周度数据可能是2018年1月3日那么3日的数据向前填充使1日2日都有数值\n",
" 数据特征相关性分析:\n",
" \n",
"特征信息总共有309个,日度(216),周度(94),154天(1), 详看 附1、特征列表\n",
" 数据特征工程:\n",
" 1. 数据日期排序,新日期在最后\n",
" 2. 删除空列,特征数据列没有值,就删除\n",
" 3. 删除近两月不再更新值的指标\n",
" 4. 非日度数据填充为日度数据,填充规则:\n",
" -- 向后填充,举例:假设周五出现一个周度指标数据,那么在这之前的数据用上周五的数据\n",
" -- 向前填充举例采集数据开始日期为2018年1月1日那么周度数据可能是2018年1月3日那么3日的数据向前填充使1日2日都有数值\n",
" 数据特征相关性分析:\n",
" \n",
"********************************************************************************************************************************************************************************************************\n",
"********************************************************************************************************************************************************************************************************\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 1000x1000 with 0 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 读取配置\n",
"from lib.dataread import *\n",
"from lib.tools import *\n",
"from models.nerulforcastmodels import ex_Model,model_losss,brent_export_pdf,tansuanli_export_pdf,pp_export_pdf,model_losss_juxiting\n",
"\n",
"import glob\n",
"import torch\n",
"torch.set_float32_matmul_precision(\"high\")\n",
"\n",
"sqlitedb = SQLiteHandler(db_name) \n",
"sqlitedb.connect()\n",
"\n",
"signature = BinanceAPI(APPID, SECRET)\n",
"etadata = EtaReader(signature=signature,\n",
" classifylisturl = classifylisturl,\n",
" classifyidlisturl=classifyidlisturl,\n",
" edbcodedataurl=edbcodedataurl,\n",
" edbcodelist=edbcodelist,\n",
" edbdatapushurl=edbdatapushurl,\n",
" edbdeleteurl=edbdeleteurl,\n",
" edbbusinessurl=edbbusinessurl\n",
" )\n",
"# 获取数据\n",
"if is_eta:\n",
" # eta数据\n",
" logger.info('从eta获取数据...')\n",
" signature = BinanceAPI(APPID, SECRET)\n",
" etadata = EtaReader(signature=signature,\n",
" classifylisturl = classifylisturl,\n",
" classifyidlisturl=classifyidlisturl,\n",
" edbcodedataurl=edbcodedataurl,\n",
" edbcodelist=edbcodelist,\n",
" edbdatapushurl=edbdatapushurl,\n",
" edbdeleteurl=edbdeleteurl,\n",
" edbbusinessurl=edbbusinessurl,\n",
" )\n",
" df_zhibiaoshuju,df_zhibiaoliebiao = etadata.get_eta_api_pp_data(data_set=data_set,dataset=dataset) # 原始数据,未处理\n",
"\n",
" # 数据处理\n",
" df = datachuli_juxiting(df_zhibiaoshuju,df_zhibiaoliebiao,y = y,dataset=dataset,add_kdj=add_kdj,is_timefurture=is_timefurture,end_time=end_time) \n",
"\n",
"else:\n",
" logger.info('读取本地数据:'+os.path.join(dataset,data_set))\n",
" df = getdata_juxiting(filename=os.path.join(dataset,data_set),y=y,dataset=dataset,add_kdj=add_kdj,is_timefurture=is_timefurture,end_time=end_time) # 原始数据,未处理\n",
"\n",
"# 更改预测列名称\n",
"df.rename(columns={y:'y'},inplace=True)\n",
" \n",
"if is_edbnamelist:\n",
" df = df[edbnamelist] \n",
"df.to_csv(os.path.join(dataset,'指标数据.csv'), index=False)\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "ae059224-976c-4839-b455-f81da7f25179",
"metadata": {},
"outputs": [],
"source": [
"# 保存最新日期的y值到数据库\n",
"# 取第一行数据存储到数据库中\n",
"first_row = df[['ds','y']].tail(1)\n",
"# 将最新真实值保存到数据库\n",
"# if not sqlitedb.check_table_exists('trueandpredict'):\n",
"# first_row.to_sql('trueandpredict',sqlitedb.connection,index=False)\n",
"# else:\n",
"# for row in first_row.itertuples(index=False):\n",
"# row_dict = row._asdict()\n",
"# row_dict['ds'] = row_dict['ds'].strftime('%Y-%m-%d %H:%M:%S')\n",
"# check_query = sqlitedb.select_data('trueandpredict',where_condition = f\"ds = '{row.ds}'\")\n",
"# if len(check_query) > 0:\n",
"# set_clause = \", \".join([f\"{key} = '{value}'\" for key, value in row_dict.items()])\n",
"# sqlitedb.update_data('trueandpredict',set_clause,where_condition = f\"ds = '{row.ds}'\")\n",
"# continue\n",
"# sqlitedb.insert_data('trueandpredict',tuple(row_dict.values()),columns=row_dict.keys())\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "abb597fc-c5f3-4d76-8099-5eff358cb634",
"metadata": {},
"outputs": [],
"source": [
"import datetime\n",
"# 判断当前日期是不是周一\n",
"is_weekday = datetime.datetime.now().weekday() == 1\n",
"if is_weekday:\n",
" logger.info('今天是周一,更新预测模型')\n",
" # 计算最近20天预测残差最低的模型名称\n",
"\n",
" model_results = sqlitedb.select_data('trueandpredict',order_by = \"ds DESC\",limit = \"20\")\n",
" # 删除空值率为40%以上的列\n",
" print(model_results.shape)\n",
" model_results = model_results.dropna(thresh=len(model_results)*0.6,axis=1)\n",
" model_results = model_results.dropna()\n",
" print(model_results.shape)\n",
" modelnames = model_results.columns.to_list()[2:] \n",
" for col in model_results[modelnames].select_dtypes(include=['object']).columns:\n",
" model_results[col] = model_results[col].astype(np.float32)\n",
" # 计算每个预测值与真实值之间的偏差率\n",
" for model in modelnames:\n",
" model_results[f'{model}_abs_error_rate'] = abs(model_results['y'] - model_results[model]) / model_results['y']\n",
"\n",
" # 获取每行对应的最小偏差率值\n",
" min_abs_error_rate_values = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].min(), axis=1)\n",
" # 获取每行对应的最小偏差率值对应的列名\n",
" min_abs_error_rate_column_name = model_results.apply(lambda row: row[[f'{model}_abs_error_rate' for model in modelnames]].idxmin(), axis=1)\n",
" print(min_abs_error_rate_column_name)\n",
" # 将列名索引转换为列名\n",
" min_abs_error_rate_column_name = min_abs_error_rate_column_name.map(lambda x: x.split('_')[0])\n",
" # 取出现次数最多的模型名称\n",
" most_common_model = min_abs_error_rate_column_name.value_counts().idxmax()\n",
" logger.info(f\"最近20天预测残差最低的模型名称{most_common_model}\")\n",
"\n",
" # 保存结果到数据库\n",
" \n",
" if not sqlitedb.check_table_exists('most_model'):\n",
" sqlitedb.create_table('most_model',columns=\"ds datetime, most_common_model TEXT\")\n",
" sqlitedb.insert_data('most_model',(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),most_common_model,),columns=('ds','most_common_model',))\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "ade7026e-8cf2-405f-a2da-9e90f364adab",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"开始训练模型...\n",
"开始训练模型...\n"
]
}
],
"source": [
"if is_corr:\n",
" df = corr_feature(df=df)\n",
"\n",
"df1 = df.copy() # 备份一下后面特征筛选完之后加入ds y 列用\n",
"logger.info(f\"开始训练模型...\")\n",
"row,col = df.shape\n"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "dfef57d8-36da-423b-bbe7-05a13e15f71b",
"metadata": {},
"outputs": [],
"source": [
"now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')\n",
"# ex_Model(df,\n",
"# horizon=horizon,\n",
"# input_size=input_size,\n",
"# train_steps=train_steps,\n",
"# val_check_steps=val_check_steps,\n",
"# early_stop_patience_steps=early_stop_patience_steps,\n",
"# is_debug=is_debug,\n",
"# dataset=dataset,\n",
"# is_train=is_train,\n",
"# is_fivemodels=is_fivemodels,\n",
"# val_size=val_size,\n",
"# test_size=test_size,\n",
"# settings=settings,\n",
"# now=now,\n",
"# etadata = etadata,\n",
"# modelsindex = modelsindex,\n",
"# data = data,\n",
"# is_eta=is_eta,\n",
"# )\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "0e5b6f30-b7ca-4718-97a3-48b54156e07f",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"模型训练完成\n",
"模型训练完成\n",
"训练数据绘图ing\n",
"训练数据绘图ing\n",
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_19344\\3035235873.py:145: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" names_df['columns'] = names_df.apply(add_rote_column, axis=1)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
"['NLinear', 'RNN', 'TiDE', 'TSMixer', 'PatchTST', 'NHITS', 'DilatedRNN', 'DLinear', 'GRU', 'LSTM', 'Informer', 'DeepNPTS', 'MLP', 'TFT', 'TSMixerx', 'BiTCN', 'TCN', 'iTransformer', 'StemGNN', 'MLPMultivariate']\n",
"<class 'list'>\n",
" ds y NHITS upper_bound lower_bound\n",
"0 2024-01-30 7315.000000 7314.250977 7255.317383 7406.355469\n",
"5 2024-01-31 7302.500000 7313.850586 7260.271484 7409.821777\n",
"10 2024-02-01 7275.000000 7296.995117 7250.980469 7406.994141\n",
"15 2024-02-02 7242.500000 7275.514648 7233.059082 7395.299805\n",
"20 2024-02-04 7240.000000 7236.788574 7210.264160 7378.917480\n",
".. ... ... ... ... ...\n",
"975 2024-11-13 7323.333496 7332.291016 7241.626953 7422.700195\n",
"976 2024-11-14 7353.333496 7344.439941 7244.206543 7417.808594\n",
"977 2024-11-15 7393.333496 7319.736328 7230.743652 7441.161133\n",
"978 2024-11-18 7363.333496 7317.362305 7208.802734 7442.793457\n",
"979 2024-11-19 7370.000000 7307.738770 7191.159668 7436.033203\n",
"\n",
"[200 rows x 5 columns]\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 2000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_19344\\3035235873.py:337: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" first_row['ds'] = first_row['ds'].dt.strftime('%Y-%m-%d 00:00:00')\n",
"更新数据sqlUPDATE trueandpredict SET ds = '2024-11-20 00:00:00', NHITS = '7337.594', Informer = '7316.5264', LSTM = '7313.051', iTransformer = '7342.468', TSMixer = '7344.392', TSMixerx = '7306.8916', PatchTST = '7350.6377', RNN = '7378.303', GRU = '7405.318', TCN = '7418.5396', BiTCN = '7321.0723', DilatedRNN = '7320.571', MLP = '7338.035', DLinear = '7387.8057', NLinear = '7361.405', TFT = '7362.294', StemGNN = '7351.2534', MLPMultivariate = '7331.5254', TiDE = '7354.707', DeepNPTS = '7376.7446' WHERE ds = '2024-11-20 00:00:00'\n",
"更新数据sqlUPDATE trueandpredict SET ds = '2024-11-20 00:00:00', NHITS = '7337.594', Informer = '7316.5264', LSTM = '7313.051', iTransformer = '7342.468', TSMixer = '7344.392', TSMixerx = '7306.8916', PatchTST = '7350.6377', RNN = '7378.303', GRU = '7405.318', TCN = '7418.5396', BiTCN = '7321.0723', DilatedRNN = '7320.571', MLP = '7338.035', DLinear = '7387.8057', NLinear = '7361.405', TFT = '7362.294', StemGNN = '7351.2534', MLPMultivariate = '7331.5254', TiDE = '7354.707', DeepNPTS = '7376.7446' WHERE ds = '2024-11-20 00:00:00'\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Column 'ds' already exists in table 'trueandpredict'.\n",
"Column 'NHITS' already exists in table 'trueandpredict'.\n",
"Column 'Informer' already exists in table 'trueandpredict'.\n",
"Column 'LSTM' already exists in table 'trueandpredict'.\n",
"Column 'iTransformer' already exists in table 'trueandpredict'.\n",
"Column 'TSMixer' already exists in table 'trueandpredict'.\n",
"Column 'TSMixerx' already exists in table 'trueandpredict'.\n",
"Column 'PatchTST' already exists in table 'trueandpredict'.\n",
"Column 'RNN' already exists in table 'trueandpredict'.\n",
"Column 'GRU' already exists in table 'trueandpredict'.\n",
"Column 'TCN' already exists in table 'trueandpredict'.\n",
"Column 'BiTCN' already exists in table 'trueandpredict'.\n",
"Column 'DilatedRNN' already exists in table 'trueandpredict'.\n",
"Column 'MLP' already exists in table 'trueandpredict'.\n",
"Column 'DLinear' already exists in table 'trueandpredict'.\n",
"Column 'NLinear' already exists in table 'trueandpredict'.\n",
"Column 'TFT' already exists in table 'trueandpredict'.\n",
"Column 'StemGNN' already exists in table 'trueandpredict'.\n",
"Column 'MLPMultivariate' already exists in table 'trueandpredict'.\n",
"Column 'TiDE' already exists in table 'trueandpredict'.\n",
"Column 'DeepNPTS' already exists in table 'trueandpredict'.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"训练数据绘图end\n",
"训练数据绘图end\n"
]
}
],
"source": [
"logger.info('模型训练完成')\n",
"# # 模型评估\n",
"\n",
"pd.set_option('display.max_columns', 100)\n",
"\n",
"# 计算预测评估指数\n",
"def model_losss_juxiting(sqlitedb):\n",
" global dataset\n",
" most_model = [sqlitedb.select_data('most_model',columns=['most_common_model'],order_by='ds desc',limit=1).values[0][0]]\n",
" most_model_name = most_model[0]\n",
"\n",
" # 预测数据处理 predict\n",
" df_combined = loadcsv(os.path.join(dataset,\"cross_validation.csv\")) \n",
" df_combined = dateConvert(df_combined)\n",
" # 删除空列\n",
" df_combined.dropna(axis=1,inplace=True)\n",
" # 删除缺失值,预测过程不能有缺失值\n",
" df_combined.dropna(inplace=True) \n",
" # 其他列转为数值类型\n",
" df_combined = df_combined.astype({col: 'float32' for col in df_combined.columns if col not in ['cutoff','ds'] })\n",
" # 使用 groupby 和 transform 结合 lambda 函数来获取每个分组中 cutoff 的最小值,并创建一个新的列来存储这个最大值\n",
" df_combined['max_cutoff'] = df_combined.groupby('ds')['cutoff'].transform('max')\n",
"\n",
" # 然后筛选出那些 cutoff 等于 max_cutoff 的行,这样就得到了每个分组中 cutoff 最大的行,并保留了其他列\n",
" df_combined = df_combined[df_combined['cutoff'] == df_combined['max_cutoff']]\n",
" # 删除模型生成的cutoff列\n",
" df_combined.drop(columns=['cutoff', 'max_cutoff'], inplace=True)\n",
" # 获取模型名称\n",
" modelnames = df_combined.columns.to_list()[1:] \n",
" if 'y' in modelnames:\n",
" modelnames.remove('y')\n",
" df_combined3 = df_combined.copy() # 备份df_combined,后面画图需要\n",
"\n",
"\n",
" # 空的列表存储每个模型的MSE、RMSE、MAE、MAPE、SMAPE\n",
" cellText = []\n",
"\n",
" # 遍历模型名称,计算模型评估指标 \n",
" for model in modelnames:\n",
" modelmse = mse(df_combined['y'], df_combined[model])\n",
" modelrmse = rmse(df_combined['y'], df_combined[model])\n",
" modelmae = mae(df_combined['y'], df_combined[model])\n",
" # modelmape = mape(df_combined['y'], df_combined[model])\n",
" # modelsmape = smape(df_combined['y'], df_combined[model])\n",
" # modelr2 = r2_score(df_combined['y'], df_combined[model])\n",
" cellText.append([model,round(modelmse, 3), round(modelrmse, 3), round(modelmae, 3)])\n",
" \n",
" model_results3 = pd.DataFrame(cellText,columns=['模型(Model)','平均平方误差(MSE)', '均方根误差(RMSE)', '平均绝对误差(MAE)'])\n",
" # 按MSE降序排列\n",
" model_results3 = model_results3.sort_values(by='平均平方误差(MSE)', ascending=True)\n",
" model_results3.to_csv(os.path.join(dataset,\"model_evaluation.csv\"),index=False)\n",
" modelnames = model_results3['模型(Model)'].tolist()\n",
" allmodelnames = modelnames.copy()\n",
" # 保存5个最佳模型的名称\n",
" if len(modelnames) > 5:\n",
" modelnames = modelnames[0:5]\n",
" with open(os.path.join(dataset,\"best_modelnames.txt\"), 'w') as f:\n",
" f.write(','.join(modelnames) + '\\n')\n",
"\n",
" def plot_predict_vs_true():\n",
" # 预测值与真实值对比图\n",
" plt.rcParams['font.sans-serif'] = ['SimHei']\n",
" plt.figure(figsize=(15, 10))\n",
" for n,model in enumerate(modelnames[:5]):\n",
" plt.subplot(3, 2, n+1)\n",
" plt.plot(df_combined3['ds'], df_combined3['y'], label='真实值')\n",
" plt.plot(df_combined3['ds'], df_combined3[model], label=model)\n",
" plt.legend()\n",
" plt.xlabel('日期')\n",
" plt.ylabel('价格')\n",
" plt.title(model+'拟合')\n",
" plt.subplots_adjust(hspace=0.5)\n",
" plt.savefig(os.path.join(dataset,'预测值与真实值对比图.png'), bbox_inches='tight')\n",
" plt.close()\n",
" \n",
" plot_predict_vs_true()\n",
" \n",
" \n",
" '''\n",
" # # 根据最佳模型的绝对误差的平均比例,最佳模型乘平均比例的百分比,确定最大最小值\n",
" # 计算最佳模型对应的绝对误差的平均比例\n",
" most_model_mae = model_results3[model_results3['模型(Model)']==most_model_name]['平均绝对误差(MAE)'].values[0]\n",
" \n",
" def mae_upper_lower(row):\n",
" # 计算上边界值\n",
" upper_bound = row[most_model_name] * (1 + most_model_mae/row[most_model_name])\n",
" # 计算下边界值\n",
" lower_bound = row[most_model_name] * (1 - most_model_mae/row[most_model_name])\n",
" return pd.Series([lower_bound, upper_bound], index=['lower_bound', 'upper_bound'])\n",
" \n",
" df_combined3[['upper_bound', 'lower_bound']] = df_combined3.apply(mae_upper_lower, axis=1)\n",
" '''\n",
" \n",
" # 每个模型的绝对值\n",
" # names = []\n",
" # for col in allmodelnames:\n",
" # df_combined3[f'{col}-{most_model_name}-误差比例'] = abs(df_combined3[col] - df_combined3[most_model_name]) / df_combined3[most_model_name] * 100\n",
" \n",
"\n",
" # # 设置阈值 rote\n",
" # rote = 1.5\n",
" # names_df = df_combined3[names]\n",
" # # names_df['rote'] = rote\n",
" # def add_rote_column(row):\n",
" # columns = []\n",
" # for r in names_df.columns:\n",
" # if row[r] <= rote:\n",
" # columns.append(r.split('-')[0])\n",
" # return pd.Series([columns], index=['columns'])\n",
" # names_df['columns'] = names_df.apply(add_rote_column, axis=1)\n",
" \n",
" # def add_upper_lower_bound(row):\n",
" # print(row['columns'])\n",
" # print(type(row['columns']))\n",
" # # 计算上边界值\n",
" # upper_bound = df_combined3.loc[row.name,row['columns']].max()\n",
" # # 计算下边界值\n",
" # lower_bound = df_combined3.loc[row.name,row['columns']].min()\n",
" # return pd.Series([lower_bound, upper_bound], index=['lower_bound', 'upper_bound'])\n",
" # df_combined3[['upper_bound','lower_bound']] = names_df.apply(add_upper_lower_bound, axis=1)\n",
" \n",
" # print(df_combined3[['ds','y',most_model_name,'upper_bound','lower_bound']])\n",
" \n",
" \n",
" \n",
" \n",
" \n",
" # '''\n",
" # 计算每个模型与最佳模型的绝对误差比例\n",
" names = []\n",
" for col in allmodelnames:\n",
" df_combined3[f'{col}-{most_model_name}-误差比例'] = abs(df_combined3[col] - df_combined3[most_model_name]) / df_combined3[most_model_name]\n",
" names.append(f'{col}-{most_model_name}-误差比例')\n",
"\n",
" # 设置阈值 rote\n",
" rote = 0.04\n",
" names_df = df_combined3[names]\n",
" # names_df['rote'] = rote\n",
" def add_rote_column(row):\n",
" columns = []\n",
" for r in names_df.columns:\n",
" if row[r] <= rote:\n",
" columns.append(r.split('-')[0])\n",
" return pd.Series([columns], index=['columns'])\n",
" names_df['columns'] = names_df.apply(add_rote_column, axis=1)\n",
" \n",
" def add_upper_lower_bound(row):\n",
" print(row['columns'])\n",
" print(type(row['columns']))\n",
" # 计算上边界值\n",
" upper_bound = df_combined3.loc[row.name,row['columns']].max()\n",
" # 计算下边界值\n",
" lower_bound = df_combined3.loc[row.name,row['columns']].min()\n",
" return pd.Series([lower_bound, upper_bound], index=['lower_bound', 'upper_bound'])\n",
" df_combined3[['upper_bound','lower_bound']] = names_df.apply(add_upper_lower_bound, axis=1)\n",
" \n",
" print(df_combined3[['ds','y',most_model_name,'upper_bound','lower_bound']])\n",
" # '''\n",
" \n",
" \n",
" '''\n",
" # 计算波动率,取近60日波动率的10%和90%分位数确定通道上下界\n",
" df_combined3['volatility'] = df_combined3['y'].pct_change().round(4)\n",
" # 计算近60日的波动率 10% 90%分位数\n",
" df_combined3['quantile_10'] = df_combined3['volatility'].rolling(60).quantile(0.1)\n",
" df_combined3['quantile_90'] = df_combined3['volatility'].rolling(60).quantile(0.9)\n",
" df_combined3 = df_combined3.round(4)\n",
" # 计算分位数对应的价格\n",
" df_combined3['quantile_10_price'] = df_combined3['y'] * (1 + df_combined3['quantile_10'])\n",
" df_combined3['quantile_90_price'] = df_combined3['y'] * (1 + df_combined3['quantile_90'])\n",
"\n",
" # 遍历行\n",
" def find_min_max_within_quantile(row):\n",
" # 获取分位数10%和90%的值\n",
" q10 = row['quantile_10_price']\n",
" q90 = row['quantile_90_price']\n",
" \n",
" # 判断flot值是否为空值\n",
" if pd.isna(q10) or pd.isna(q90):\n",
" return pd.Series([None, None, None, None], index=['min_within_quantile','max_within_quantile','min_model','max_model'])\n",
" \n",
" # 初始化最小和最大值为None\n",
" min_value = None\n",
" max_value = None\n",
" min_value_model = ''\n",
" max_value_model = ''\n",
"\n",
" # 遍历指定列,找出在分位数范围内的最大最小值\n",
" for model in modelnames:\n",
" value = row[model]\n",
" if value >= q10 and value <= q90:\n",
" if min_value is None or value < min_value:\n",
" min_value = value\n",
" min_value_model = model\n",
"\n",
" if max_value is None or value > max_value:\n",
" max_value = value\n",
" max_value_model = model\n",
" \n",
" # 返回最大最小值\n",
" return pd.Series([min_value, max_value,min_value_model,max_value_model], index=['min_within_quantile', 'max_within_quantile','min_model','max_model'])\n",
"\n",
" # 应用函数到每一行\n",
" df_combined3[['min_within_quantile', 'max_within_quantile','min_model','max_model']] = df_combined3.apply(find_min_max_within_quantile, axis=1)\n",
"\n",
" \n",
" '''\n",
" \n",
" # 去除有空值的行\n",
" df_combined3.dropna(inplace=True)\n",
" # 保存到数据库\n",
" # df_combined3.to_sql('testandpredict_groupby', sqlitedb.connection, if_exists='replace', index=False)\n",
" df_combined3.to_csv(os.path.join(dataset,\"testandpredict_groupby.csv\"),index=False)\n",
"\n",
" \n",
" def _plt_predict_ture(df):\n",
" df = df[-50:] # 取50个数据点画图\n",
" # 历史价格\n",
" plt.figure(figsize=(20, 10))\n",
" plt.plot(df['ds'], df['y'], label='真实值')\n",
" # 颜色填充\n",
" # plt.fill_between(df['ds'], df['min_within_quantile'], df['max_within_quantile'], alpha=0.2)\n",
" plt.fill_between(df['ds'], df['upper_bound'], df['lower_bound'], alpha=0.2)\n",
" # plt.plot(df_combined3['ds'], df_combined3['min_abs_error_rate_prediction'], label='最小绝对误差', linestyle='--', color='orange')\n",
" # 网格\n",
" plt.grid(True)\n",
" # 显示历史值\n",
" for i, j in zip(df['ds'], df['y']):\n",
" plt.text(i, j, str(j), ha='center', va='bottom')\n",
"\n",
" for model in most_model:\n",
" plt.plot(df['ds'], df[model], label=model,marker='o')\n",
" # 当前日期画竖虚线\n",
" plt.axvline(x=df['ds'].iloc[-horizon], color='r', linestyle='--')\n",
" plt.legend()\n",
" plt.xlabel('日期')\n",
" plt.ylabel('价格')\n",
" \n",
" plt.savefig(os.path.join(dataset,'历史价格-预测值.png'), bbox_inches='tight')\n",
" plt.show()\n",
" plt.close()\n",
"\n",
" _plt_predict_ture(df_combined3)\n",
"\n",
" '''\n",
" # 去掉方差最大的模型,其余模型预测最大最小值确定通道边界\n",
" \n",
" \n",
" # 历史数据+预测数据\n",
" # 拼接未来时间预测\n",
" df_predict = loadcsv(os.path.join(dataset,'predict.csv'))\n",
" df_predict.drop('unique_id',inplace=True,axis=1)\n",
" df_predict.dropna(axis=1,inplace=True)\n",
" df_predict2 = df_predict.copy()\n",
" try:\n",
" df_predict['ds'] = pd.to_datetime(df_predict['ds'],format=r'%Y-%m-%d')\n",
" except ValueError :\n",
" df_predict['ds'] = pd.to_datetime(df_predict['ds'],format=r'%Y/%m/%d')\n",
"\n",
" # 取第一行数据存储到数据库中\n",
" first_row = df_predict.head(1)\n",
" first_row['ds'] = first_row['ds'].dt.strftime('%Y-%m-%d 00:00:00')\n",
"\n",
" # # 将预测结果保存到数据库\n",
" df_combined3 = pd.concat([df_combined3, df_predict]).reset_index(drop=True)\n",
" # # 判断 df 的数值列转为float\n",
" for col in df_combined3.columns:\n",
" try:\n",
" if col != 'ds':\n",
" df_combined3[col] = df_combined3[col].astype(float)\n",
" df_combined3[col] = df_combined3[col].round(2)\n",
" except ValueError:\n",
" pass\n",
" df_combined3.to_csv(os.path.join(dataset,\"testandpredict_groupby.csv\"),index=False)\n",
" df_combined3['ds'] = df_combined3['ds'].dt.strftime('%Y-%m-%d 00:00:00')\n",
" # # 判断表存在\n",
" if not sqlitedb.check_table_exists('testandpredict_groupby'):\n",
" df_combined3.to_sql('testandpredict_groupby',sqlitedb.connection,index=False)\n",
" else:\n",
" for row in df_combined3.itertuples(index=False):\n",
" row_dict = row._asdict()\n",
" check_query = sqlitedb.select_data('testandpredict_groupby',where_condition = f\"ds = '{row.ds}'\")\n",
" if len(check_query) > 0:\n",
" set_clause = \", \".join([f\"{key} = '{value}'\" for key, value in row_dict.items()])\n",
" sqlitedb.update_data('testandpredict_groupby',set_clause,where_condition = f\"ds = '{row.ds}'\")\n",
" continue\n",
" sqlitedb.insert_data('testandpredict_groupby',tuple(row_dict.values()),columns=row_dict.keys())\n",
"\n",
" ten_models = allmodelnames\n",
" # 计算每个模型的方差\n",
" variances = df_combined3[ten_models].var()\n",
" # 找到方差最大的模型\n",
" max_variance_model = variances.idxmax()\n",
" # 打印方差最大的模型\n",
" print(\"方差最大的模型是:\", max_variance_model)\n",
" # 去掉方差最大的模型\n",
" df_combined3 = df_combined3.drop(columns=[max_variance_model])\n",
" if max_variance_model in allmodelnames:\n",
" allmodelnames.remove(max_variance_model)\n",
" df_combined3['min'] = df_combined3[allmodelnames].min(axis=1)\n",
" df_combined3['max'] = df_combined3[allmodelnames].max(axis=1)\n",
" print(df_combined3[['min','max']])\n",
" # 历史价格+预测价格\n",
" df_combined3 = df_combined3[-50:] # 取50个数据点画图\n",
" plt.figure(figsize=(20, 10))\n",
" plt.plot(df_combined3['ds'], df_combined3['y'], label='真实值',marker='o')\n",
" plt.plot(df_combined3['ds'], df_combined3[most_model], label=most_model_name)\n",
" plt.fill_between(df_combined3['ds'], df_combined3['min'], df_combined3['max'], alpha=0.2)\n",
" plt.grid(True)\n",
" # # 显示历史值\n",
" for i, j in zip(df_combined3['ds'][:-5], df_combined3['y'][:-5]):\n",
" plt.text(i, j, str(j), ha='center', va='bottom')\n",
" # 当前日期画竖虚线\n",
" plt.axvline(x=df_combined3['ds'].iloc[-horizon], color='r', linestyle='--')\n",
" plt.legend()\n",
" plt.xlabel('日期')\n",
" plt.ylabel('价格')\n",
"\n",
" plt.savefig(os.path.join(dataset,'历史价格-预测值.png'), bbox_inches='tight')\n",
" plt.close()\n",
" '''\n",
"\n",
" # # 历史数据+预测数据\n",
" # # 拼接未来时间预测\n",
" df_predict = pd.read_csv(os.path.join(dataset,'predict.csv'))\n",
" df_predict.drop('unique_id',inplace=True,axis=1)\n",
" df_predict.dropna(axis=1,inplace=True)\n",
"\n",
" try:\n",
" df_predict['ds'] = pd.to_datetime(df_predict['ds'],format=r'%Y-%m-%d')\n",
" except ValueError :\n",
" df_predict['ds'] = pd.to_datetime(df_predict['ds'],format=r'%Y/%m/%d')\n",
"\n",
" def first_row_to_database(df):\n",
" # # 取第一行数据存储到数据库中\n",
" first_row = df.head(1)\n",
" first_row['ds'] = first_row['ds'].dt.strftime('%Y-%m-%d 00:00:00')\n",
" # 将预测结果保存到数据库\n",
" if not sqlitedb.check_table_exists('trueandpredict'):\n",
" first_row.to_sql('trueandpredict',sqlitedb.connection,index=False)\n",
" else:\n",
" for col in first_row.columns:\n",
" sqlitedb.add_column_if_not_exists('trueandpredict',col,'TEXT')\n",
" for row in first_row.itertuples(index=False):\n",
" row_dict = row._asdict()\n",
" columns=row_dict.keys()\n",
" check_query = sqlitedb.select_data('trueandpredict',where_condition = f\"ds = '{row.ds}'\")\n",
" if len(check_query) > 0:\n",
" set_clause = \", \".join([f\"{key} = '{value}'\" for key, value in row_dict.items()])\n",
" sqlitedb.update_data('trueandpredict',set_clause,where_condition = f\"ds = '{row.ds}'\")\n",
" continue\n",
" sqlitedb.insert_data('trueandpredict',tuple(row_dict.values()),columns=columns)\n",
"\n",
" first_row_to_database(df_predict)\n",
" def find_most_common_model():\n",
" # 最多频率的模型名称\n",
" min_model_max_frequency_model = df_combined3['min_model'].tail(20).value_counts().idxmax()\n",
" max_model_max_frequency_model = df_combined3['max_model'].tail(20).value_counts().idxmax()\n",
" if min_model_max_frequency_model == max_model_max_frequency_model:\n",
" # 取20天第二多的模型\n",
" max_model_max_frequency_model = df_combined3['max_model'].tail(20).value_counts().nlargest(2).index[1]\n",
"\n",
" df_predict['min_model'] = min_model_max_frequency_model\n",
" df_predict['max_model'] = max_model_max_frequency_model\n",
" df_predict['min_within_quantile'] = df_predict[min_model_max_frequency_model]\n",
" df_predict['max_within_quantile'] = df_predict[max_model_max_frequency_model]\n",
"\n",
"\n",
" # find_most_common_model()\n",
"\n",
" df_predict2 = df_predict.copy()\n",
" df_predict2['ds'] = pd.to_datetime(df_predict2['ds'])\n",
" df_predict2['ds'] = df_predict2['ds'].dt.strftime('%Y-%m-%d 00:00:00')\n",
"\n",
"\n",
" def _add_abs_error_rate():\n",
" # 计算每个预测值与真实值之间的偏差率\n",
" for model in allmodelnames:\n",
" df_combined3[f'{model}_abs_error_rate'] = abs(df_combined3['y'] - df_combined3[model]) / df_combined3['y']\n",
"\n",
" # 获取每行对应的最小偏差率值\n",
" min_abs_error_rate_values = df_combined3.apply(lambda row: row[[f'{model}_abs_error_rate' for model in allmodelnames]].min(), axis=1)\n",
" # 获取每行对应的最小偏差率值对应的列名\n",
" min_abs_error_rate_column_name = df_combined3.apply(lambda row: row[[f'{model}_abs_error_rate' for model in allmodelnames]].idxmin(), axis=1) \n",
" # 将列名索引转换为列名\n",
" min_abs_error_rate_column_name = min_abs_error_rate_column_name.map(lambda x: x.split('_')[0])\n",
" # 获取最小偏差率对应的模型的预测值\n",
" min_abs_error_rate_predictions = df_combined3.apply(lambda row: row[min_abs_error_rate_column_name[row.name]], axis=1)\n",
" # 将最小偏差率对应的模型的预测值添加到DataFrame中\n",
" df_combined3['min_abs_error_rate_prediction'] = min_abs_error_rate_predictions\n",
" df_combined3['min_abs_error_rate_column_name'] = min_abs_error_rate_column_name\n",
"\n",
" _add_abs_error_rate()\n",
"\n",
" df_combined3 = pd.concat([df_combined3, df_predict]).reset_index(drop=True)\n",
" # 判断 df 的数值列转为float\n",
" for col in df_combined3.columns:\n",
" try:\n",
" if col != 'ds':\n",
" df_combined3[col] = df_combined3[col].astype(float)\n",
" df_combined3[col] = df_combined3[col].round(2)\n",
" except ValueError:\n",
" pass\n",
" df_combined3.to_csv(os.path.join(dataset,\"df_combined3.csv\"),index=False) \n",
" \n",
" # 历史价格+预测价格\n",
" # 将预测结果保存到数据库\n",
" # 判断表存在\n",
" # if not sqlitedb.check_table_exists('testandpredict_groupby'):\n",
" # df_combined3.to_sql('testandpredict_groupby',sqlitedb.connection,index=False)\n",
" # else:\n",
" # for row in df_combined3.itertuples(index=False):\n",
" # row_dict = row._asdict()\n",
" # check_query = sqlitedb.select_data('testandpredict_groupby',where_condition = f\"ds = '{row.ds}'\")\n",
" # if len(check_query) > 0:\n",
" # set_clause = \", \".join([f\"{key} = '{value}'\" for key, value in row_dict.items()])\n",
" # sqlitedb.update_data('testandpredict_groupby',set_clause,where_condition = f\"ds = '{row.ds}'\")\n",
" # continue\n",
" # sqlitedb.insert_data('testandpredict_groupby',tuple(row_dict.values()),columns=row_dict.keys())\n",
" \n",
" \n",
"\n",
" def _plt_predict_table(df): \n",
" # 预测值表格\n",
" fig, ax = plt.subplots(figsize=(20, 6))\n",
" ax.axis('off') # 关闭坐标轴\n",
" # 数值保留2位小数\n",
" df = df.round(2)\n",
" df = df[-horizon:]\n",
" df['Day'] = [f'Day_{i}' for i in range(1,horizon+1)]\n",
" # Day列放到最前面\n",
" df = df[['Day'] + list(df.columns[:-1])]\n",
" table = ax.table(cellText=df.values, colLabels=df.columns, loc='center')\n",
" #加宽表格\n",
" table.auto_set_font_size(False)\n",
" table.set_fontsize(10)\n",
"\n",
" # 设置表格样式,列数据最小的用绿色标识\n",
" plt.savefig(os.path.join(dataset,'预测值表格.png'), bbox_inches='tight')\n",
" plt.close()\n",
" \n",
" def _plt_model_results3():\n",
" # 可视化评估结果\n",
" plt.rcParams['font.sans-serif'] = ['SimHei']\n",
" fig, ax = plt.subplots(figsize=(20, 10))\n",
" ax.axis('off') # 关闭坐标轴\n",
" table = ax.table(cellText=model_results3.values, colLabels=model_results3.columns, loc='center')\n",
" # 加宽表格\n",
" table.auto_set_font_size(False)\n",
" table.set_fontsize(10)\n",
"\n",
" # 设置表格样式,列数据最小的用绿色标识\n",
" plt.savefig(os.path.join(dataset,'模型评估.png'), bbox_inches='tight')\n",
" plt.close()\n",
"\n",
"\n",
" _plt_predict_table(df_combined3)\n",
" _plt_model_results3()\n",
"\n",
" return model_results3\n",
"\n",
"\n",
"\n",
"logger.info('训练数据绘图ing')\n",
"model_results3 = model_losss_juxiting(sqlitedb)\n",
"\n",
"logger.info('训练数据绘图end')\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "85b557de-8235-4e27-b5b8-58b36dfe6724",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"制作报告ing\n",
"制作报告ing\n",
"开始绘制价差类指标的相关性直方图\n",
"开始绘制价差类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"价差下正相关的特征值有: ['PP期货-丙烯价差(山东)/400DMA', 'PP-SC价差7吨桶比', '布伦特-PP价差盘面', '薄壁-拉丝价差(华北)', 'PP-FEI M4(含税成本)', '油制PP利润华东', 'PP-FEI M3(含税成本)', '价差:聚乙烯与乙烯(西北欧)', 'PP-FEI M2含税成本', 'PP-FEI M1含税成本', 'PP加权利润', '滨化PDH利润1.169/含税)', 'PDH利润山东/丙烯)', 'PP-FEI价差', '外采丙烯制聚丙烯利润(华东)', '5-9月差PP', '9-1月差PP']\n",
"正在绘制第1个特征PP期货-丙烯价差(山东)/400DMA与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP-SC价差7吨桶比与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征布伦特-PP价差盘面与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征薄壁-拉丝价差(华北)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征PP-FEI M4(含税成本)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"价差下负相关的特征值有: ['L-P价差', 'L-P价差盘面', 'PDH制PP利润山东', '低熔共聚-拉丝价差(华南)', '外采丙烯制聚丙烯利润(山东)', 'PDH制PP利润华南', '京博-滨化价差(不含税/1.13/580', 'PP现货-丙烯价差(山东)', 'PP-3MA价差盘面', 'PP-3*MA主力', '透明-PP盘面价差华北', '透明-拉丝价差(华北)', 'PP期货-丙烯价差(山东)', 'PDH制PP利润华东', 'PDH制PP利润华东指数修匀', '华东拉丝-CP', '透明-PP盘面华东', 'LPG-PP价差盘面', '拉丝区域价差(华东-华北)', '透明-拉丝价差(华东)', 'PP盘中基差临沂', 'PP基差盘中', '外采甲醇制PP利润西北', '拉丝区域价差(华南-华北)', '滨化丙烷-PP边际贡献不含税/510/收率1.169', '滨化丙烯-京博PP边际贡献不含税/600/收率1.169', '粉粒价差(山东)', '外采甲醇制PP利润太仓', '1-5月差PP', '滨化丙烷-PP边际贡献不含税/580/收率1.13', '山东拉丝-CP', '山东拉丝-丙烯价差', '拉丝区域价差(华南-华东)']\n",
"正在绘制第1个特征L-P价差与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征L-P价差盘面与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征PDH制PP利润山东与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征低熔共聚-拉丝价差(华南)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征外采丙烯制聚丙烯利润山东与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"价差类指标的相关性总和为11.033279360751804\n",
"价差类指标的相关性总和为11.033279360751804\n",
"d:\\code\\PriceForecast\\models\\nerulforcastmodels.py:1709: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n",
" grouped_corr = pd.concat([grouped_corr, goup_corr], axis=0, ignore_index=True)\n",
"开始绘制价格类指标的相关性直方图\n",
"开始绘制价格类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"价格下正相关的特征值有: ['PP神华竞拍临沂', 'PP拉丝S1003市场主流价常州国能榆林化工', 'PP神华竞拍华东', 'BOPP成本中国', 'PPBOPP1103K出厂价华北地区国家能源宁煤', 'PP拉丝国内现货价格', 'PPBOPP1103K出厂价华南地区宁夏神华宁煤', 'PPBOPP1103K出厂价华东地区国家能源宁煤', 'PP神华竞拍西安', 'PP薄壁注塑1040TE出厂价华东地区宁夏神华宁煤', 'PP薄壁注塑1040TE出厂价华南地区宁夏神华宁煤', 'PP主力盘中', 'PP拉丝S1003市场主流价东莞宝丰能源', 'PPBOPPPPH-F03D出厂价华南地区海南炼化装置一', 'PP粉料山东/拼接', 'PP.DCE收盘价', 'PP主力收盘价', 'PP无纺布生产成本', 'PP薄壁注塑PPH-MN60出厂价华南地区中石化北海', 'PP低熔共聚K8003出厂价华东地区东华能源宁波', 'PP薄壁注塑BZ-70出厂价华北地区寿光鲁清', 'PP中熔共聚2043N出厂价华南地区国家能源宁煤', 'PP中熔共聚2043N出厂价华东地区国家能源宁煤', 'PP薄壁注塑TM6000H出厂价华南地区福建联合石化', 'PP低熔共聚2500H市场价厦门国家能源宁煤', 'PP拉丝1102K市场价临沂国家能源宁煤', 'PP低熔共聚K8003自提价广州宝丰能源', 'PP透明R3080T出厂价华东地区浙江鸿基', 'PP中熔共聚EP5010C出厂价华北地区中沙天津', 'PPBOPPPPH-FL03-S出厂价华北地区青岛炼化', 'PP中熔共聚SP179P出厂价华北地区中石化齐鲁化工', 'PP拉丝1102K市场价青州国家能源宁煤', 'PP透明R3260T出厂价华东地区浙江鸿基', 'PP低熔共聚K8003自提价宁波国能榆林化工', 'PP低熔共聚K8003市场价杭州东华能源宁波', 'PP粉料山东', 'PP中熔共聚YPJ1215C出厂价华东地区扬子石化', 'PP中熔共聚EP440N出厂价华南地区中科炼化', 'DCE化工产品期货价格指数收盘价', 'PP薄壁注塑PPH-MM60出厂价华北地区石家庄炼化', 'PP低熔共聚EPS30R市场价临沂榆能化', 'PP薄壁注塑M60ET出厂价华东地区镇海炼化', 'CPP二元共聚膜PPR-F08-S出厂价华南地区茂名石化', 'CPP二元共聚膜PPR-F08M-S出厂价华南地区茂名石化', '现货价(中间价):均聚聚丙烯(PP-H):CFR远东', 'BOPP厚光膜出厂价华北地区山东永冠', 'PP无规共聚HC-M700B出厂价华北地区山东东明', 'PP透明HC-RP340R出厂价华北地区山东东明', 'PP低熔共聚2500H市场价台州国家能源宁煤', 'PP薄壁注塑K1870-B市场价临沂榆能化', 'PP高熔共聚EP300R市场价青岛宝来石化', 'PP高熔共聚2240S出厂价华南地区国家能源宁煤', 'PP高熔共聚M30RH市场价合肥中安联合', '现货价(中间价):均聚聚丙烯(PP-H):FOB中东', 'DCE塑料期货价格指数收盘价', 'PP透明HT9025ZK出厂价华南地区中科炼化', 'PP中熔共聚K8009出厂价华南地区广州石化', 'PP透明PPR-MT75N出厂价华中地区中原中石化', 'PP透明PPR-MT25出厂价华中地区中原中石化', 'BOPP12μ光膜出厂价华北地区凯达包装', 'PP透明PPR-B10出厂价华中地区中原中石化', 'PP高熔共聚EP548R出厂价华南地区中海壳牌', '热水管YPR-503出厂价华东地区扬子石化', '热水管T4401出厂价华南地区茂名石化', 'CPP二元共聚膜DY-W0723F市场主流价天津独山子石化', 'PP高熔共聚EP548R市场价广州中科炼化', 'PP透明HT9025NX出厂价华南地区茂名石化', '热水管PA14D出厂价华东地区大庆炼化', '热水管PPR-4220出厂价华南地区广州石化', '再生PP市场价/山东(日)', '现货价(中间价):聚丙烯PP(纤维/注塑):FAS休斯敦', '现货价(中间价):聚丙烯PP(纤维/注塑):FOB西北欧', 'CPP二元共聚膜F800EDF出厂价华东地区上海石化', '热水管PA14D市场价青州大庆炼化', 'PP透明HT9025NX市场主流价广州中石化茂名', '西北欧现货价FOB低密度聚乙烯', 'PPBOPPF03BT出厂价华东地区镇海炼化', 'PP高熔共聚2240S自提价常州国家能源宁煤', '塑编透明30cm*45cm市场价山东', 'BOPP生产毛利中国', '塑编原材料库存天数', 'PP透明M26ET出厂价华东地区镇海炼化', 'PP透明M08ETN出厂价华东地区镇海炼化', 'PP无纺布开工率', '塑编产成品库存', 'PET瓶片利润中国7DMA', '塑编产成品库存天数', '塑编订单天数', 'PP低熔共聚市场价华南地区', 'CPP薄膜成本', '中国BOPP订单天数', '中国BOPP原料库存天数', 'PP多空情绪强弱指数', 'PP主力收盘价拟合残差/丙烷 CP M1', 'PE注塑开工率/周', 'PPBOPPL5D98出厂价华南地区广东石化', 'PP看升比例中国', '美国-中国PSGPPS价差', 'PP无纺布生产毛利中国', '塑编整体开工率', '华南聚丙烯基差(折盘面收盘价)', '中国PP下游平均开工率', '华东聚丙烯基差(折盘面收盘价)', 'PP看空情绪指数环差', 'PP看平比例中国']\n",
"正在绘制第1个特征PP神华竞拍临沂与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP拉丝S1003市场主流价常州国能榆林化工与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征PP神华竞拍华东与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征BOPP成本中国与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征PPBOPP1103K出厂价华北地区国家能源宁煤与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"价格下负相关的特征值有: ['中国PP无纺布原料库存天数', '中国PP无纺布成品库存天数', '中国PP无纺布原料库存量', 'PP无纺布厂内库存中国', '中国BOPP成品库存量', '中国BOPP成品库存天数', '印度粉矿57%Fe品牌价格青岛港', 'PP看跌比例中国', 'PP管材开工率', 'PP低熔共聚2500HY市场价临沂国家能源宁煤', '煤制聚丙烯利润', 'CPP二元共聚膜F08EC出厂价华东地区镇海炼化', 'PP低熔共聚K8003出厂价临沂宝丰能源', 'BOPP开工率', 'PP低熔共聚K8003出厂价常州宝丰能源', 'PP低熔共聚K8003出厂价河北、鲁北大唐内蒙多伦', '华北聚丙烯基差(折盘面收盘价)', 'DCE工业产品期货价格综合指数收盘价']\n",
"正在绘制第1个特征中国PP无纺布原料库存天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征中国PP无纺布成品库存天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征中国PP无纺布原料库存量与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征PP无纺布厂内库存中国与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征中国BOPP成品库存量与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"价格类指标的相关性总和为89.50783619014288\n",
"价格类指标的相关性总和为89.50783619014288\n",
"开始绘制供应类指标的相关性直方图\n",
"开始绘制供应类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"供应下正相关的特征值有: ['PP开工率1MMA', 'PP周度开工率', 'PP开工率/7DMA', 'PP开工率/2WMA', 'PP日度开工率', 'PP/开工率/东北地区(日)', 'PP开工率/华中地区(日)', 'PP开工率/华南地区(日)', 'PP开工率/华北地区(日)', 'PP下游综合开工率少注塑&CPP', 'PP无纺布生产毛利', 'CPP均聚生产比例中国', 'PP高熔纤维生产比例中国', '中国再生PP周度开工负荷率同差', '冷水管:生产比例:中国(日)', 'PP粉料开工率4WMA', '中国再生PP周度开工负荷率', 'PP开工率/西北地区(日)', 'PP拉丝生产比例中国', 'BOPP开工率(隆众)同差', 'BOPP开工率同差', 'PP粉料开工率', 'PP涂覆料生产比例中国', 'PP薄壁注塑生产比例中国', 'PP开工率/西南地区(日)', 'PP下游综合开工率/2WMA', 'PP低熔共聚生产比例中国', 'PP开工率/华东地区(日)', 'PP中熔共聚生产比例中国', 'PP均聚注塑生产比例中国', 'PP日产/PE日产']\n",
"正在绘制第1个特征PP开工率1MMA与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP周度开工率与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征PP开工率/7DMA与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征PP开工率/2WMA与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征PP日度开工率与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"供应下负相关的特征值有: ['PP粉检修减损量', 'PP日度产量粒料+粉料)', 'PP周度产量', 'PP日度产量7DMA', 'PP日度产量', 'PP周度产量变频', 'PP日度产量1MMA', 'PP周度产量/4WMA', 'PP管材开工率同差', 'PP周度产量同差', 'PP开工率同差', 'PP检修减损量', 'PP日度产量同差', 'PP周度产量同比', 'PP检修损失量万吨/年)', 'PP检修减损量', 'PP日度产量同比', 'PP下游综合开工率同差', 'PP粉料产量(钢联)7DMA', 'PP周度检修率', 'PP粉产量/中国(日)', 'CPP三元共聚薄膜生产比例中国', 'PP下游综合开工率/3年超季节性', 'CPP二元共聚膜生产比例中国', 'PP透明生产比例中国', 'BOPP开工率4WMA', 'PP周度产量周环差', 'PP中熔纤维生产比例中国', 'PP无纺布开工率同差', 'PP下游开工/PE下游开工', 'PP无规共聚生产比例中国', '热水管:生产比例:中国(日)', 'PP高熔共聚生产比例中国', 'PP日度产量1000天百分位', 'PP日度产量环差']\n",
"正在绘制第1个特征PP粉检修减损量与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP日度产量粒料+粉料)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征PP周度产量与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征PP日度产量7DMA与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征PP日度产量与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"供应类指标的相关性总和为19.68970163194788\n",
"供应类指标的相关性总和为19.68970163194788\n",
"开始绘制其他类指标的相关性直方图\n",
"开始绘制其他类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"其他下正相关的特征值有: ['PP连续-1月', 'PP连续-9月', 'PP连续-5月', '山东丙烯主流价', 'FEI丙烷 M1', 'PVC期货主力', '丙烷(山东)', '甲醇鲁南价格', '甲醇太仓港口价格', 'PE期货收盘价', 'LME铜价']\n",
"正在绘制第1个特征PP连续-1月与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP连续-9月与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征PP连续-5月与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征山东丙烯主流价与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征FEI丙烷 M1与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"其他下负相关的特征值有: ['在岸人民币汇率', '黄金连1合约', '美元指数', 'Brent-WTI', '南华工业品指数']\n",
"正在绘制第1个特征在岸人民币汇率与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征黄金连1合约与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征美元指数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征Brent-WTI与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征南华工业品指数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"其他类指标的相关性总和为12.062003637554202\n",
"其他类指标的相关性总和为12.062003637554202\n",
"开始绘制库存类指标的相关性直方图\n",
"开始绘制库存类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"库存下正相关的特征值有: ['PP贸易商库存(钢联)同比', 'PP期末库存/天津港(周)', '塑编原材料库存', 'PP下游原料库存', 'BOPP订单天数-产成品库存天数(隆众)', 'PP期末库存/厦门港(周)', '中国BOPP原料库存量', 'PP粉料库存', 'PP库存 (地方炼厂)', '聚烯烃两油库存', 'PP期末库存青岛港', 'PP库存(PDH)超季节性(3Y)', 'PP贸易商库存(钢联)', 'PP拉丝期末库存', '聚烯烃两油库存同比', 'PP周度总库存', 'PP炼厂库存+PDH库存', 'PP期末库存/宁波港(周)', '中国BOPP周度原料库存天数T', 'PP粉料库存变化', 'PP上游库存两油+煤+PDH+地方)']\n",
"正在绘制第1个特征PP贸易商库存(钢联)同比与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP期末库存/天津港(周)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征塑编原材料库存与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征PP下游原料库存与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征BOPP订单天数-产成品库存天数(隆众)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"库存下负相关的特征值有: ['中国BOPP周度产成品库存天数T', 'PP下游原料库存天数', '中国CPP成品库存天数', '中国再生PP样本企业周度库存', 'PP库存(PDH)', '聚烯烃两油库存1000天百分位', '中国CPP原料库存天数', '中国CPP成品库存量', 'PP期末库存/广州港(周)', 'BOPP原料库存+产成品库存天数', 'PP期末库存/上海港(周)', '中国PP港口期末库存', 'PP上游库存(两油+煤+PDH', 'PP两油+煤制库存', 'PP两桶油/库存(周)', 'PP库存煤制', '中国BOPP原料库存天数同差']\n",
"正在绘制第1个特征中国BOPP周度产成品库存天数T与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征PP下游原料库存天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征中国CPP成品库存天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征中国再生PP样本企业周度库存与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征PP库存(PDH)与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"库存类指标的相关性总和为11.266242723870176\n",
"库存类指标的相关性总和为11.266242723870176\n",
"开始绘制进出口类指标的相关性直方图\n",
"开始绘制进出口类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"进出口下正相关的特征值有: ['聚丙烯出口利润']\n",
"正在绘制第1个特征聚丙烯出口利润与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"进出口下负相关的特征值有: ['聚丙烯进口利润']\n",
"正在绘制第1个特征聚丙烯进口利润与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"进出口类指标的相关性总和为1.6205427630454334\n",
"进出口类指标的相关性总和为1.6205427630454334\n",
"开始绘制需求类指标的相关性直方图\n",
"开始绘制需求类指标的相关性直方图\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"需求下正相关的特征值有: ['中国华东地区市场平均价BOPP厚光膜', 'BOPP利润华东地区', '中国BOPP订单天数/4WMA', 'PP部分下游订单天数', 'BOPP 订单-成品天数', 'BOPP订单天数变频', 'BOPP完工订单工作量', 'BOPP开工率超季节性/3年', 'BOPP新订单量7DMA', '中国再生PP周度样本成交量', 'BOPP日度新订单量T', '中国BOPP订单天数同差', '中国BOPP成品库存量同差']\n",
"正在绘制第1个特征中国华东地区市场平均价BOPP厚光膜与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征BOPP利润华东地区与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第3个特征中国BOPP订单天数/4WMA与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第4个特征PP部分下游订单天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第5个特征BOPP 订单-成品天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"需求下负相关的特征值有: ['PP下游成品库存天数', '中国CPP订单天数']\n",
"正在绘制第1个特征PP下游成品库存天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"正在绘制第2个特征中国CPP订单天数与价格散点图...\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
" with pd.option_context('mode.use_inf_as_na', True):\n",
"需求类指标的相关性总和为6.761200339955732\n",
"需求类指标的相关性总和为6.761200339955732\n",
"开始绘制相关性总和的气泡图\n",
"开始绘制相关性总和的气泡图\n",
"绘制相关性总和的气泡图结束\n",
"绘制相关性总和的气泡图结束\n",
"制作报告end\n",
"制作报告end\n",
"模型训练完成\n",
"模型训练完成\n"
]
}
],
"source": [
"# 模型报告\n",
"\n",
"logger.info('制作报告ing')\n",
"title = f'{settings}--{now}-预测报告' # 报告标题\n",
"\n",
"pp_export_pdf(dataset=dataset,num_models = 5 if is_fivemodels else 22,time=end_time,\n",
" reportname=reportname,sqlitedb=sqlitedb),\n",
"\n",
"logger.info('制作报告end')\n",
"logger.info('模型训练完成')"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "d4129e71-ee2c-4af1-81ed-fadf14efa206",
"metadata": {},
"outputs": [],
"source": [
"# 发送邮件\n",
"m = SendMail(\n",
" username=username,\n",
" passwd=passwd,\n",
" recv=recv,\n",
" title=title,\n",
" content=content,\n",
" file=max(glob.glob(os.path.join(dataset,'*.pdf')), key=os.path.getctime),\n",
" ssl=ssl,\n",
")\n",
"# m.send_mail() \n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}