IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 杀虫市场分析(1) -> 正文阅读

[数据结构与算法]杀虫市场分析(1)

杀虫市场分析(1)

获取数据

import numpy as np
import pandas as pd 
import os
import glob
import matplotlib.pyplot as plt
import matplotlib.style as style
import seaborn as sns
import warnings
import datetime
#配置项  (配置画布)
warnings.filterwarnings("ignore")

style.use("fivethirtyeight")

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
plt.rcParams["figure.figsize"] = (14,8)

#科学计数法
np.set_printoptions(suppress=True)
pd.set_option("display.float_format",lambda x : "%.3f"%x) 

加载数据

os.chdir("./data/杀虫/驱虫剂市场")  #切目录
filenames = glob.glob("*市场近三年交易额.xlsx")  #文件名
dfs = []
for f in filenames:
    df = pd.read_excel(f)
    if df["时间"].dtype == "int64":
        df["时间"] = pd.to_datetime(df["时间"],unit="D",origin=pd.Timestamp("1899-12-30"))
    df = df.set_index("时间")
    df.columns = [f.split("市场")[0] + "交易金额"]
    dfs.append(df)
df = pd.concat(dfs,axis=1)

观察数据

#查看交易金额数据类型
df.dtypes
#查看空值
df.isna().sum()
#查看时间区间
df.index.max(),df.index.min()
df.plot()  #画图 

在这里插入图片描述

df.resample("Y").sum().plot()  #重新分配时间  看年份看

在这里插入图片描述

  • 图1可以看出杀虫市场每一年交易量具有季节性,在冬季的时候效率下降

  • 图2可以看出杀虫市场的需求在逐年上升

数据量太少,需要增加2015年的数据,用线性回归进行预测补值

from sklearn.linear_model import LinearRegression
#预测  2015 1-10 || 2018 11-12
#特征是年份和月份
def fill(df= None,year= None,month= None) :
    df = df.reset_index()   # 重置索引
    df["year"] = df["时间"].dt.year
    df["month"] = df["时间"].dt.month  #拆分时间,因为不同产品的有不同从方差,每个年月的数据不同,要用同年月的数据进行对比
    
    #线性回归用到的特征数据  X_train,   y_trains
    X_train = df.query(f"month=={month}").loc[:,["year","month"]]
    y_trains = df.query(f"month=={month}").iloc[:,1:-2]
    
    # 预测的金额 
    X_pred = np.array([[year,month]]) # 开头传入的年月
    # 当前的时间 
    y_index = [datetime.datetime(year,month,1)]  # datetime.datetime (用法百度)
    
    for i in range(len(y_trains.columns)):  # y_trains.columns
        y_train = y_trains.iloc[:,i]
        model = LinearRegression().fit(X_train,y_train)
        y_pred = model.predict(X_pred)
        y_index.append(y_pred)
        
    df.drop(labels=["year","month"],axis=1,inplace=True)  # 删除表中创建的用于计算的时间列
    newrow = pd.DataFrame(dict(zip(df.columns,y_index)))
    
    return newrow.append(df).set_index(["时间"])
df = fill(df,2018,11)
df = fill(df,2018,12)
for i in range(1,11):
    df = fill(df,2015,i)
df=df.sort_index(ascending=False)
df.plot()

in range(1,11):
df = fill(df,2015,i)


~~~ python
df=df.sort_index(ascending=False)
df.plot()

在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 23:04:13  更:2021-07-22 23:04:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:27:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码