3536 lines
421 KiB
Plaintext
3536 lines
421 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"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",
|
||
"删除两月不更新特征前数据量:(2515, 354)\n",
|
||
"删除两月不更新特征前数据量:(2515, 354)\n",
|
||
"删除两月不更新特征后数据量:(2515, 315)\n",
|
||
"删除两月不更新特征后数据量:(2515, 315)\n",
|
||
"删除预测列为空值的行后数据量:(771, 315)\n",
|
||
"删除预测列为空值的行后数据量:(771, 315)\n",
|
||
"删除全为空值的列后数据量:(771, 315)\n",
|
||
"删除全为空值的列后数据量:(771, 315)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\lib\\dataread.py:226: SettingWithCopyWarning: \n",
|
||
"A value is trying to be set on a copy of a slice from a DataFrame\n",
|
||
"\n",
|
||
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
|
||
" values.dropna(inplace=True,axis=0)\n",
|
||
" 日度(219) 周度(94) 84天(1)\n",
|
||
"0 PP主力收盘价拟合残差/丙烷 CP M1 PE注塑开工率/周 中国:华东地区:市场平均价:BOPP厚光膜\n",
|
||
"1 华南聚丙烯基差(折盘面收盘价) PP:看跌比例:中国(周) \n",
|
||
"2 华北聚丙烯基差(折盘面收盘价) PP:看平比例:中国(周) \n",
|
||
"3 华东聚丙烯基差(折盘面收盘价) PP:看升比例:中国(周) \n",
|
||
"4 煤制聚丙烯利润 PP看空情绪指数环差 \n",
|
||
".. ... ... ...\n",
|
||
"214 PE期货收盘价 \n",
|
||
"215 PP连续-1月 \n",
|
||
"216 PP连续-5月 \n",
|
||
"217 PP连续-9月 \n",
|
||
"218 y \n",
|
||
"\n",
|
||
"[219 rows x 3 columns]\n",
|
||
" 日度(219) 周度(94) 84天(1)\n",
|
||
"0 PP主力收盘价拟合残差/丙烷 CP M1 PE注塑开工率/周 中国:华东地区:市场平均价:BOPP厚光膜\n",
|
||
"1 华南聚丙烯基差(折盘面收盘价) PP:看跌比例:中国(周) \n",
|
||
"2 华北聚丙烯基差(折盘面收盘价) PP:看平比例:中国(周) \n",
|
||
"3 华东聚丙烯基差(折盘面收盘价) PP:看升比例:中国(周) \n",
|
||
"4 煤制聚丙烯利润 PP看空情绪指数环差 \n",
|
||
".. ... ... ...\n",
|
||
"214 PE期货收盘价 \n",
|
||
"215 PP连续-1月 \n",
|
||
"216 PP连续-5月 \n",
|
||
"217 PP连续-9月 \n",
|
||
"218 y \n",
|
||
"\n",
|
||
"[219 rows x 3 columns]\n",
|
||
"特征信息:总共有312个,日度(219),周度(94),84天(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",
|
||
"特征信息:总共有312个,日度(219),周度(94),84天(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 import *\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": 2,
|
||
"id": "ae059224-976c-4839-b455-f81da7f25179",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"更新数据sqlUPDATE trueandpredict SET ds = '2024-11-18 00:00:00', y = '7363.333333333333' WHERE ds = '2024-11-18 00:00:00'\n",
|
||
"更新数据sqlUPDATE trueandpredict SET ds = '2024-11-18 00:00:00', y = '7363.333333333333' WHERE ds = '2024-11-18 00:00:00'\n"
|
||
]
|
||
}
|
||
],
|
||
"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": 3,
|
||
"id": "abb597fc-c5f3-4d76-8099-5eff358cb634",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"今天是周一,更新预测模型\n",
|
||
"今天是周一,更新预测模型\n",
|
||
"最近20天预测残差最低的模型名称:NHITS\n",
|
||
"最近20天预测残差最低的模型名称:NHITS\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"(16, 23)\n",
|
||
"(12, 22)\n",
|
||
"1 TSMixerx_abs_error_rate\n",
|
||
"2 TCN_abs_error_rate\n",
|
||
"3 NHITS_abs_error_rate\n",
|
||
"4 NHITS_abs_error_rate\n",
|
||
"5 Informer_abs_error_rate\n",
|
||
"8 BiTCN_abs_error_rate\n",
|
||
"9 PatchTST_abs_error_rate\n",
|
||
"10 TSMixer_abs_error_rate\n",
|
||
"11 BiTCN_abs_error_rate\n",
|
||
"12 StemGNN_abs_error_rate\n",
|
||
"13 Informer_abs_error_rate\n",
|
||
"14 NLinear_abs_error_rate\n",
|
||
"dtype: object\n"
|
||
]
|
||
}
|
||
],
|
||
"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": 4,
|
||
"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": 5,
|
||
"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": 54,
|
||
"id": "0e5b6f30-b7ca-4718-97a3-48b54156e07f",
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"模型训练完成\n",
|
||
"模型训练完成\n",
|
||
"训练数据绘图ing\n",
|
||
"训练数据绘图ing\n",
|
||
"C:\\Users\\Administrator\\AppData\\Local\\Temp\\ipykernel_3756\\1547647528.py:94: 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"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"方差最大的模型是: DilatedRNN\n",
|
||
" min max\n",
|
||
"0 7284.56 7448.81\n",
|
||
"1 7281.35 7449.26\n",
|
||
"2 7292.95 7457.24\n",
|
||
"3 7286.25 7454.66\n",
|
||
"4 7261.40 7439.28\n",
|
||
".. ... ...\n",
|
||
"200 7317.24 7449.07\n",
|
||
"201 7303.26 7449.81\n",
|
||
"202 7302.45 7443.93\n",
|
||
"203 7291.02 7451.16\n",
|
||
"204 7267.80 7454.45\n",
|
||
"\n",
|
||
"[205 rows x 2 columns]\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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R+swAAAAAAAAAACAvURFCwAAAAAAAACg9aJR6a676i9fconk9dobD2ATKloAAAAAAAAAAK1nGNIVV9RvhmF3NLDRddddp6ysLNXU1EiSiouL5XA4dO655+qUU05J3K5hf8PtJOmxxx7TIYcc0uh85557rhwOR5OtwaOPPqohQ4aoZ8+e+vWvf61oNNqBj27PSLQAAAAgqURicZX7InaHAQAAAABohWAwqEceeaRdznXfffepurpaN910k4488khVV1erurpakrR48WL96U9/0rPPPqsPP/xQCxcu1P33398u6+4tWocBAAAgacTipjZUBhWNmeqR6ZHbxe+CAAAAAKQ4y5KMoD1rezKlnSpJmuNyuXTffffpsssua/OymZmZyszMVEZGhtxut/Lz8xPHPvjgA40dO1ZHHHGEJOnPf/6ziouL27xmW5BoAQAAQFIwTUsbqoKKGKYkqTIQVd/cdJujAgAAAACbGUHppgH2rH3NFsmb1aKbHn300fryyy81b948jRw5ssNC2nffffXnP/9Zr776qn74wx/ql7/8ZYet1VL8RBAAAABJYVN1SMFIPHG9wh9R3LRsjAgAAAAA0FLZ2dk6//zzdc899zTa/8Ybbyg/P1/5+fkaM2ZMm9f54Q9/qEsvvVSnnXaajjzySH322WdtPmdbUdECAAAA222pCak21Hh4pmlKlYGI+uRQ1QIAAAAghXky6ytL7Fq7FX73u9/pgAMOUFFRUWLf1KlT9eCDD0qSNm3apMmTJ7c5rJtvvlkXXnih5syZoylTpui5557Taaed1ubz7i0SLQAAALBVhT+iSn9018d8UfXKSpPT2bKewAAAAADQ7TgcLW7fZbcRI0Zo5syZuu+++xL7MjMzNXTo0HZbY9WqVerRo4dGjBihp556Svvss4/+9Kc/2ZpooXUYAAAAbFMbMrS1Jrzb43HTUmVg10kYAAAAADZLT5cWLqzf0qlER71LLrlEr776aoed/4orrtD999+fuH7ssceqpqamw9ZrCRItAAAAsEUwGlNJVXCPt6vwR2RZzGoBAAAAko7LJR19dP3mctkdDZLEtGnTtP/++3fY+WfMmKGHHnpIn3/+udavX69bbrlFM2bM6LD1WoJECwAAADpdJBZXcUVQLcmfxOKWqqhqAQAAAIAu4w9/+EOHnfuiiy7S2WefrVNPPVWHHXaYcnNzdffdd3fYei3BjBYAAAB0qljcVHFFUHGz5VUq5f6ICrK8cjiY1QIAAAAkDcOQtg85169/LXk89sYD21x33XWNrl900UW66KKLmtxu6NChTToWnHvuuTr33HN3ed5LL71Ul156aaN9LpdLt9xyi2655Za2hNyuqGgBAABApzFNS8WVQUVjZqvuZ8QsVQeNDooKAAAAwF6JRqXf/a5+i1KFjtRFogUAAACdpqQ6qFA0vlf3LfcxqwUAAAAAkHxItAAAAKBTbK4JqS4U2+v7R2OmakNUtQAAAAAAkguJFgAAAHS4cl9EVf62txIo90XaIRoAAAAASG5U83eO9nqeSbQAAACgQ9UGDZXWhtvlXGGDqhYAAAAA3ZfH45EkBYNBmyNJDQ3Pc8Pzvrfc7REMAAAAsCuBSEwl1e37AaHcF1ZeRtveBAMAAABAMnK5XMrPz1dZWZkkKTMzUw6Hw+aouh/LshQMBlVWVqb8/Hy5XK42nY9ECwAAADpE2IiruDKg9q54D0VN1YUN5aaTbAEAAADQ/fTr10+SEskWdJz8/PzE890WJFoAAADQ7oy4qeLKgEyzY85fVhch0QIAAADYLS1Nev31HZfRLhwOh/r3768+ffrIMGid3FE8Hk+bK1kakGgBAABAuzJNSxsqAzJiHTe8MRSNyx+JKTuNt7MAAACAbdxu6cQT7Y6i23K5XO2WCEDHctqx6GOPPSaHw9Fke+yxx/Tkk09q8ODBys7O1rRp01RcXJy43/LlyzVu3Dj16NFDs2fPlrVTH4rmjgEAAKBzWJaljVVBhaIdVMqyk7K6cIevAQAAAADAntiSaDnrrLNUXV2d2EpKStSrVy9NnjxZ//d//6eXX35ZK1as0JAhQ3TuuedKkiKRiE4++WSNHTtWixcv1ooVK/TYY4/t8RgAAAA6z5basHzhWKesFYjEFYh0zloAAAAAdsEwpMceq99ocYUUZkuvBa/XK6/Xm7h+33336bTTTtOSJUs0ceJEHXbYYZKk8847T2eeeaYkad68eaqtrdUdd9yhzMxM3XTTTZo1a5bOO++8Zo/tSiQSUSQSSVyvq6uTJBmGQc877LWGvx3+hgAkO16v0FFqglFV1HZulUlpdUCDe2Z26prdFa8NAFIVr38AdoXXhhYKBOTZ/h2sccopUlaWvfEA7ag1//5tb2odDod11113adGiRQoGg3rvvfe0ZMkSDR8+XPfee6+OO+44SdLSpUs1ceJEZWbWf5AeM2aMVqxYscdju3LzzTfr+uuvb7L/7bffTpwD2FvvvPOO3SEAQIvweoXuYrndAXQzvDYASFW8/gHYFV4bmucKh3XS9stvvfWW4unptsYDtKdgMNji29qeaHnmmWc0ceJEDR06VJJ0+umnJypahg0bpkWLFkmqrzoZNmxY4n4Oh0Mul0vV1dXNHuvRo0eTNa+++mpdfvnliet1dXUqLCzU9OnTlZub2xEPEynAMAy98847Ou644+TxeOwOBwB2i9crdJRNVSHVhTv/F3856W4VFvBjmbbitQFAquL1D8Cu8NrQQoFA4uKMGTOoaEG30tAJqyVsT7Q88MADieqSzz//XK+99poWLVqkkSNH6uabb9YJJ5ygL774Qm63W2lpaY3um56ermAw2OyxXSVa0tLSmtxekjweDy+caDP+jgB0Fbxeob2Zzoicrs5/exkwpLicSve4On3t7ojXBgCpitc/ALvCa8Me7PTceDyeRteBrq41//adHRjHHhUVFamoqEjTpk2TJD333HP66U9/qvHjxys7O1t//etftW7dOi1dulQFBQUqLy9vdH+fzyev19vsMQAAAHSOWNyybe1yX2TPNwIAAAAAoAPYmmiZO3euTjrppERmKBaLadu2bYnjPp9PgUBA8Xhc48aN0+eff544VlxcrEgkooKCgmaPAQAAoHMYcdO2tWtDhiKxuG3rAwAAAABSl62Jlvnz52vq1KmJ60ceeaT++9//6p///KeeeeYZnXLKKerbt6/GjBmjKVOmqLa2Vk888YQk6ZZbbtG0adPkcrmaPQYAAICOFzctWfYVtMiypLI6qloAAAAAAJ3PthktoVBIixYt0oMPPpjY95Of/ESrVq3SnXfeqa1bt+qggw7Sf//730TFy4MPPqizzjpLs2fPVjwe1wcffCBJcrvduz0GAACAjmdnNUuD2pChvjFTXretvyUCAAAAUkdamjR37o7LQIqyLdGSkZGhSKTxrw4dDofmzJmjOXPm7PI+p5xyitasWaPFixdr0qRJ6t27d4uOAQAAoGPFTBvLWbazLKncH9HA/Ay7QwEAAABSg9stnXGG3VEAtrMt0bK3Bg4cqIEDB7b6GAAAADqOEbO/okWSqgNR9clJk8dFVQsAAAAAoHPwCRQAAABtZpjJkWix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0EJERERERERERNR4vEpJRO2WWZMhioDPF+qRdAwsHUZEREREREREjSJJwHnnnbxP1Ekx0EJE7ZYgCLDqCgrLPaEeSoegyzwgIiIiIiIiIqJG0HVg0aJQj4Io5Dh9mYjatWiLBpPGAEFzqbIIURRCPQwiIiIiIiIiIqJ2h4EWImrXdEVCerQZXSKN0Fj6qslYNoyIiIiIiIiIiKhpeGWNiDoEm0FBtxgzEuw6JGZmNJquMCuIiIiIiIiIiBqprAwwmQK3srJQj4YoZNijhYg6DEEQEGnWYDeqyClxI7fUDb8/1KNqH9ifhYiIiIiIiIiapLw81CMgCjlmtBBRhyOJAuJsOrrHWmA3KqEeTrvAsmtERERERERERERNwytrRNRhqbKIZIcR3WLNMOtM4KuNIACazD8HRERERERERERETcEra0TU4emKhLQoE1KjjGz6XgNdESEI7GtDRERERERERETUFJziTUSdhkVXYNZkFJR7cLTYBW8lG7gAgMb+LERERERERERERE3GQAsRdSqCIMBhUmE3KMgtdeNYiRv+Th5v0RUGWoiIiIiIiIiIiJqKgRYi6pREUUCMVUeEScXRYhcKyz2dNuDCcmpERERERERE1CSiCIweffI+USfFQAsRdWqKJCIpwogocyWOFLlQ4vKGekhtjhktRERERERERNQkBgPw7behHgVRyDHMSESEQLAhNcqEtGgTDGrn2TWKYiDYRERERERERERERE3Dq2tERKcwazK6xliQFGGAIguhHk6rYzYLERERERERERFR8zDQQkRUgwiTiu4xFsTatA5dYpSBFiIiIiIiIiJqsrIyIDo6cCsrC/VoiEKGPVqIiGohigJiLDocRhXHStzIL6uA3x/qUbUsAwMtRERERERERNQcubmhHgFRyHXgedpERC1DlkQk2A3oGmOG1dCx4tO6wj8DREREREREREREzcErbEREDaQrElIiTUiPNsGgdoxMEE3uGJ+DiIiIiIiIiIgoVBhoISJqJJMmo2uMGV0cRqhy+92NKrIASRRCPQwiIiIiIiIiIqJ2rWPVwCEiakM2owKrQUZuaQWOlbjg84V6RI2jM5uFiIiIiIiIiIio2RhoISJqBkEQEG3R4DCpOFbiQl5pBfz+UI+qYXSFgRYiIiIiIiIiIqLmCknNm1mzZkEQhGq3WbNmYeHChUhPT4csyzjj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RERERERERERETcRACxERERERERERERERURMx0EJERERERERERERERNREcqgHQERERERERERERETtVFRUqEdAFHIMtBARERERERERERFR45lMQE5OqEdBFHIsHUZERERERERERERERNREDLQQERERERERERERERE1EQMtRERERERERERERNR4TicwZkzg5nSGejREIcMeLURERERERERERETUeD4fsHz5yftEnRQzWoiIiIiIiIiIiIiIiJqIgRYiIiIiIiIiIiIiIqImYqCFiIiIiIiIiIiIiIioiRhoISIiIiIiIiIiIiIiaiIGWoiIiIiIiIiIiIiIiJpIDvUAiIiIiIiIiIiIiKidMhpDPQKikGOghYiIiIiIiIiIiIgaz2QCyspCPQqikGPpMCIiIiIiIiIiIiIioiZioIWIiIiIiIiIiIiIiKiJGGghIiIiIiIiIiIiosZzuYDzzw/cXK5Qj4YoZNijhYiIiIiIiIiIiIgar7ISWLz45H2iTooZLURERERERERERERERE3EQAsREREREREREREREVETMdBCRERERERERERERETURAy0EBERERERERERERERNREDLURERERERERERERERE0kh3oA4cDv9wMAiouLQzwSas88Hg/Ky8tRXPz/7d1/aFX1H8fx17n3zm3e3O9liVfbuFHgkkVoUlRQ/hG0aPZHZJKuH2ZLJ4YaQUJ/VGAgVDiwXLAhRQTBxaI/Yq2IiLIsU24TIZk11gqu3bp3a3m926c/vux+3bz33Otx89577vMBF7z3nM/n8z7CXvvI23NuTGVlZfkuBwAyIq8ApEM2AChV5B+AdMiGHI2P///PsZg0OZm/WoA5Nt0vmO4f2KHRIikej0uSAoFAnisBAAAAAAAAgCK0ZEm+KwDmRTweV3V1te05lsmlHeNyU1NT+u2337Ro0SJZlpXvclCkYrGYAoGAhoeHVVVVle9yACAj8gpAOmQDgFJF/gFIh2wAYIxRPB7XkiVL5PHYfwsLd7RI8ng8Wrp0ab7LgEtUVVXxCxhAUSCvAKRDNgAoVeQfgHTIBqC0ZbuTZZp9GwYAAAAAAAAAAAAZ0WgBAAAAAAAAAABwiEYLMEfKy8v14osvqry8PN+lAIAt8gpAOmQDgFJF/gFIh2wAcCksY4zJdxEAAAAAAAAAAADFiDtaAAAAAAAAAAAAHKLR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",
|
||
"text/plain": [
|
||
"<Figure size 2000x1000 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
},
|
||
{
|
||
"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",
|
||
"def model_losss_juxiting(sqlitedb):\n",
|
||
" global dataset\n",
|
||
" # 数据库查询最佳模型名称\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",
|
||
"\n",
|
||
" # 去掉方差最大的模型,其余模型预测最大最小值确定通道边界\n",
|
||
" best_models = pd.read_csv(os.path.join(dataset,'best_modelnames.txt'),header=None).values.flatten().tolist()\n",
|
||
" \n",
|
||
"\n",
|
||
" # 预测值与真实值对比图\n",
|
||
" plt.rcParams['font.sans-serif'] = ['SimHei']\n",
|
||
" plt.figure(figsize=(15, 10))\n",
|
||
" # 设置有5个子图的画布\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",
|
||
" # 历史数据+预测数据\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",
|
||
" # # 判断表存在\n",
|
||
" if not sqlitedb.check_table_exists('testandpredict_groupby'):\n",
|
||
" df_predict2.to_sql('testandpredict_groupby',sqlitedb.connection,index=False)\n",
|
||
" else:\n",
|
||
" for row in df_predict2.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",
|
||
" df_combined3 = pd.concat([df_combined3, df_predict]).reset_index(drop=True)\n",
|
||
"\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",
|
||
" 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",
|
||
" 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",
|
||
" plt.axvline(x=df_combined3['ds'].iloc[-horizon], color='r', linestyle='--')\n",
|
||
" plt.legend()\n",
|
||
" plt.xlabel('日期')\n",
|
||
" plt.ylabel('价格')\n",
|
||
"\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",
|
||
" plt.savefig(os.path.join(dataset,'历史价格-预测值.png'), bbox_inches='tight')\n",
|
||
" plt.show()\n",
|
||
" plt.close()\n",
|
||
"\n",
|
||
"\n",
|
||
"\n",
|
||
" # for model in most_model:\n",
|
||
" # print(model)\n",
|
||
" # plt.plot(df_combined3['ds'], df_combined3[model], label=model,marker='o')\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.show()\n",
|
||
" # plt.close()\n",
|
||
" \n",
|
||
" # # 预测值表格\n",
|
||
" # fig, ax = plt.subplots(figsize=(20, 6))\n",
|
||
" # ax.axis('off') # 关闭坐标轴\n",
|
||
" # # 数值保留2位小数\n",
|
||
" # df_combined3 = df_combined3.round(2)\n",
|
||
" # df_combined3 = df_combined3[-horizon:]\n",
|
||
" # df_combined3['Day'] = [f'Day_{i}' for i in range(1,horizon+1)]\n",
|
||
" # # Day列放到最前面\n",
|
||
" # df_combined3 = df_combined3[['Day'] + list(df_combined3.columns[:-1])]\n",
|
||
" # table = ax.table(cellText=df_combined3.values, colLabels=df_combined3.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",
|
||
" # # plt.show()\n",
|
||
" \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",
|
||
" # return model_results3\n",
|
||
"\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": 7,
|
||
"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.045084254496823\n",
|
||
"价差类指标的相关性总和为:11.045084254496823\n",
|
||
"D:\\liurui\\dev\\code\\PriceForecast\\models\\nerulforcastmodels.py:1638: 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:成本:中国(日)', 'PP:BOPP:1103K:出厂价:华北地区:国家能源宁煤(日)', 'PP拉丝国内现货价格', 'PP:BOPP:1103K:出厂价:华南地区:宁夏神华宁煤(日)', 'PP:BOPP:1103K:出厂价:华东地区:国家能源宁煤(日)', 'PP神华竞拍(西安)', 'PP:薄壁注塑:1040TE:出厂价:华东地区:宁夏神华宁煤(日)', 'PP:薄壁注塑:1040TE:出厂价:华南地区:宁夏神华宁煤(日)', 'PP主力盘中', 'PP:拉丝:S1003:市场主流价:东莞:宝丰能源(日)', 'PP:BOPP:PPH-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:出厂价:华北地区:中沙天津(日)', 'PP:BOPP:PPH-FL03-S:出厂价:华北地区:青岛炼化(日)', 'PP:中熔共聚:SP179P:出厂价:华北地区:中石化齐鲁化工(日)', 'PP:拉丝:1102K:市场价:青州:国家能源宁煤(日)', 'PP:透明:R3260T:出厂价:华东地区:浙江鸿基(日)', 'PP:低熔共聚:K8003:自提价:宁波:国能榆林化工(日)', 'PP:低熔共聚:K8003:市场价:杭州:东华能源(宁波)(日)', 'PP粉料(山东)', 'PP:中熔共聚:EP440N:出厂价:华南地区:中科炼化(日)', 'PP:中熔共聚:YPJ1215C:出厂价:华东地区:扬子石化(日)', '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:出厂价:华中地区:中原中石化(日)', 'BOPP:12μ光膜:出厂价:华北地区:凯达包装(日)', 'PP:高熔共聚:EP548R:市场价:临沂:万华化学(日)', 'PP:透明:PPR-B10:出厂价:华中地区:中原中石化(日)', '现货价(中间价):聚丙烯PP(纤维/注塑):CFR东南亚', '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低密度聚乙烯', 'PP:BOPP:F03BT:出厂价:华东地区:镇海炼化(日)', 'PP:高熔共聚:2240S:自提价:常州:国家能源宁煤(日)', '塑编:透明:30cm*45cm:市场价:山东(日)', 'BOPP:生产毛利:中国(日)', '塑编原材料库存天数', 'BOPP:18μ光膜:市场低端价:青岛(日)', 'PP:透明:M26ET:出厂价:华东地区:镇海炼化(日)', 'PP:透明:M08ETN:出厂价:华东地区:镇海炼化(日)', 'PP无纺布开工率', '塑编产成品库存', 'PET瓶片:利润:中国(日)7DMA', '塑编产成品库存天数', '塑编订单天数', 'PP:低熔共聚:市场价:华南地区(日)', 'CPP薄膜成本(日)', '中国BOPP订单天数', '中国BOPP原料库存天数', 'PP多空情绪强弱指数', 'PP主力收盘价拟合残差/丙烷 CP M1', 'PE注塑开工率/周', 'PP:BOPP:L5D98:出厂价:华南地区:广东石化(日)', 'PP:看升比例:中国(周)', '美国-中国PS(GPPS)价差', '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个特征PP:BOPP:1103K:出厂价:华北地区:国家能源宁煤(日)与价格散点图...\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",
|
||
"价格类指标的相关性总和为:91.9826336555467\n",
|
||
"价格类指标的相关性总和为:91.9826336555467\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.676577761750373\n",
|
||
"供应类指标的相关性总和为:19.676577761750373\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.061155519572203\n",
|
||
"其他类指标的相关性总和为:12.061155519572203\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.265124823866078\n",
|
||
"库存类指标的相关性总和为:11.265124823866078\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.621285695326623\n",
|
||
"进出口类指标的相关性总和为:1.621285695326623\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.76636659497056\n",
|
||
"需求类指标的相关性总和为:6.76636659497056\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": null,
|
||
"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": "Python 3 (ipykernel)",
|
||
"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
|
||
}
|