{ "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": [ "
" ] }, "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": [ "
" ] }, "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 }