当前位置: 首页 > article >正文

2025.01.15python商业数据分析top2

一、 导入项目

导入项目、准备项目数据

import pandas as pd

# 文件路径为python文件位置下的相对路径
dwx=pd.read_excel("电蚊香套装市场近三年交易额.xlsx")
fmfz=pd.read_excel(
"防霉防蛀片市场近三年交易额.xlsx")
msmc=pd.read_excel(
"灭鼠杀虫剂市场近三年交易额.xlsx")
mz=pd.read_excel(
"盘香灭蟑香蚊香盘市场近三年交易额.xlsx")
wxq=pd.read_excel(
"蚊香加热器市场近三年交易额.xlsx")
wxp=pd.read_excel(
"蚊香片市场近三年交易额.xlsx")
wxy=pd.read_excel(
"蚊香液市场近三年交易额.xlsx")

二、合并数据

声明变量、使用方法观察数据

# 使用head()方法查看前5行数据

print(dwx.head())

# 使用tail()方法查看后5行数据

print(dwx.tail())

# 使用info()方法查看数据的字段及类型

dwx.info()

三、 补齐数据

索引数据、合并数据、训练模型、预测数据

# sum方法汇总数据
dwx_all = dwx['交易金额'].sum()  # 汇总单张表格数据
print(dwx_all)
fmfz_all = fmfz['交易金额'].sum()

msmc_all = msmc['交易金额'].sum()
mz_all = mz['交易金额'].sum()
wxq_all = wxq['交易金额'].sum()
wxp_all = wxp['交易金额'].sum()
wxy_all = wxy['交易金额'].sum()
# 7张表格的数据汇总并形成一张表(合并数据)
m_sum = pd.DataFrame(data=[dwx_all, fmfz_all, msmc_all, mz_all, wxq_all, wxp_all, wxy_all], columns=['销售额'],
                     index=['电蚊香', '防霉防蛀', '灭鼠灭虫', '灭蟑', '蚊香加热器', '蚊香片', '蚊香液'])
m_sumtext = pd.DataFrame(data=[dwx_all, fmfz_all, msmc_all, mz_all, wxq_all, wxp_all, wxy_all], columns=['销售额'],
                         index=['电蚊香', '防霉防蛀', '灭鼠灭虫', '灭蟑', '蚊香加热器', '蚊香片', '蚊香液'])
print(m_sum)

# 先使用head()tail()方法观察数据

d.head()

d.tail()

# 补齐缺失月份数据

# 预测一个叶子行业的12月数据

# 索引201712月分数据

t17=d.where(d.时间=='2017-12-1').dropna()

# 同理将201612月和201512月的数据也索引出来

t16=d.where(d.时间=='2016-12-1').dropna()

t15=d.where(d.时间=='2015-12-1').dropna()

# 2015年,2016年,2017年三年的数据合并

t4=pd.concat([t17,t16,t15])

# 由于我们的目的是用2015-20173年的12月份数据来进行回归建模,预测201812月数据

# 因此,此处我们选用2015,2016,2017作为x变量,每一年12月份的数据作为y变量

y=t4.drop('时间',axis=1)

# 设置x轴的年份。

x=[2017,2016,2015]

# 使用回归算法预测,先加载numpysklearn库。
 
# 使用回归算法预测,先加载numpysklearn库。

import numpy as np

from sklearn import linear_model

# 将数据处理成回归模型所需要的形式。

x_train=np.array(x).reshape(-1,1)

y_train=np.array(y.iloc[:,0])

# 将线性模型实例化。

linear_reg=linear_model.LinearRegression()

# 训练模型。

linear_reg.fit(x_train,y_train)

# 输入自变量2018,预测201812月份的销售额。

y_2018_12=linear_reg.predict(np.array([2018]).reshape(-1,1)).round(1)

# 输出预测结果。

print(y_2018_12[0])

# 当一个动作有规律的出现3次或以上,肯定有一个办法可以更高效便捷。

# 用循环预测所有叶子行业的12月数据

# FOR循环,得到2018年所有类目12月份的预测值。

y_12=[]

for i in range(7):

 y_train=np.array(y.iloc[:,i])

 linear_reg=linear_model.LinearRegression()

 linear_reg.fit(x_train,y_train)

 y_pre=linear_reg.predict(np.array([2018]).reshape(-1,1)).round(1)

 y_12.append(y_pre[0])

# 打印2018年个叶子行业12月份的预测结果。

print(y_12)
 

四、 整理集数据绘制趋势图

索引数据、汇总数据、绘制各个子行业市场趋势图

# 重置索引。

d.reset_index(inplace=True)

# 由于“index”列没有作用,可以删除。

del d['index']

# 查看数据结果。

print(d.head())

# 汇总每一个月份的类目市场数据

d2=d.drop('时间',axis=1)

d['col_sum']=d2.apply(lambda x:x.sum(),axis=1)

# 提取日期的年份。

d['year']=d.时间.apply(lambda x: x.year)

# 按年份汇总数据。

data_sum=d.groupby('year').sum()

print(data_sum)
# 绘制各个叶子市场的趋势图

with plt.style.context('ggplot'):

    # 设置画布大小宽8inch,高6inch。

    pl=plt.figure(figsize=(8,6))

    # 绘制各叶子行业市场趋势线图。

    plt.plot(x,data_sum.iloc[:,0])

    plt.plot(x,data_sum.iloc[:,1])

    plt.plot(x,data_sum.iloc[:,2])

    # 设置数字标签。

    for a,b in zip(x,data_sum.iloc[:,2]):

        plt.text(a,b+0.05,'%.0f'% b,ha='center',va='bottom',fontsize=8)

    plt.plot(x,data_sum.iloc[:,3])

    plt.plot(x,data_sum.iloc[:,4])

    plt.plot(x,data_sum.iloc[:,5])

    plt.plot(x,data_sum.iloc[:,6])

    # 设置数字标签。

    for a,b in zip(x,data_sum.iloc[:,6]):

        plt.text(a,b+0.05,'%.0f'% b,ha='center',va='bottom',fontsize=8)

    # 设置图的标题,x轴标题,y轴标题,设置刻度线格式。

    plt.title('近三年驱虫市场各子市场容量趋势')

    plt.xlabel('year')

    plt.ylabel('交易额')

    plt.xticks(x,year,fontsize=9,rotation=45)

    # 设置图例,并画图,如图4-4所示。

    plt.legend(['电蚊香','防霉防蛀','灭鼠灭虫','灭蟑','蚊香加热器','蚊香片','蚊香液'])

    plt.show()

提交说明

(请注意以下说明,否则将会影响自己的最终成绩)

1、将所有Python文件压缩之后进行提交,命名为【学号姓名】。压缩包使用zip或rar格式均可。

2、将压缩包提交至对应班级的文件夹下,未上交、上交文件夹错误按0分处理


http://www.kler.cn/a/444991.html

相关文章:

  • BlueLM:以2.6万亿token铸就7B参数超大规模语言模型
  • 【C++】sophus : sim3.hpp 描述了在 3D 空间中的缩放、旋转和平移 (十九)
  • how to write 述职pptx as a tech manager
  • leetcode刷题-回溯算法04
  • 安装MMClassification的详细步骤
  • 以二进制形式创建gitea仓库
  • 网络安全的攻防战争
  • 解锁大数据治理的关键力量
  • 数据压缩比 38.65%,TDengine 重塑 3H1 的存储与性能
  • paimon中的Tag
  • java-6验证码校验
  • 如何通过HTTP API新建Collection
  • 南城云趣:智能云平台,杜绝电动车充电安全隐患
  • Oracle创建逻辑目录
  • 网络安全概论——防火墙原理与设计
  • 【算法练习】尺取法——答案
  • 【Linux篇】基础开发工具-编译器gcc/g++
  • 算法训练第二十三天|93. 复原 IP 地址 78. 子集 90. 子集 II
  • Restaurants WebAPI(一)—— clean architecture
  • ABeam 德硕 | ABeam旗下艾宾信息技术开发(上海)有限公司大连分公司数交会之行全景回顾