泰迪杯数据分析比赛2018年B题解答-任务2

该博客详细解答了2018年泰迪杯数据分析比赛B题的第二部分——数据可视化。包括任务2.1至任务2.5,涉及绘制商品销量柱状图、售货机交易额折线图和环比增长率柱状图、毛利润比例饼图、交易额与订单量气泡图以及售货机订单量热力图。博客通过Python代码实现了各种图表的绘制,并提供了数据分析和可视化的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泰迪杯数据分析比赛2018年B题解答-任务2


泰迪杯数据地址: https://www.tipdm.org/bdrace/jljingsai/20181008/1488.html#sHref.
泰迪杯数据分析2018年B题任务2题目:

任务 2.1 绘制 2017 年 6 月销量前 5 的商品销量柱状图。
任务 2.2 绘制每台售货机每月总交易额折线图及交易额月环比增长率柱
状图。
任务 2.3 绘制每台售货机毛利润占总毛利润比例的饼图(假设饮料类毛
利率为 25%,非饮料类为 20%)。
任务 2.4 绘制 4 月每台售货机交易额与订单量气泡图,横轴为售货机编
号,纵轴为月订单量。
任务 2.5 绘制售货机 C 6、7、8 三个月订单量的热力图,横轴以天为单
位,纵轴以小时为单位。从热力图可以分析得出哪些结论?


任务2 数据可视化

任务2.1

绘制 2017 年 6 月销量前 5 的商品销量柱状图。

老规矩,首先查看一下数据:
总数据
目标:此是得出6月份销量前5的商品,并绘制柱状图

分析:首先面对数据,我们得读取数据,然后提取出6月份的数据,紧接着需要对6月份数据中的商品进行总计算,算出商品月销售量。之后进行排序提取出前五数据,并制作柱状图。

实现代码:

import pandas as pd
from datetime import datetime
import numpy as np
import matplotlib.pyplot as plt
data=pd.read_csv(r'D:\大数据学习\数据分析与挖掘\B题\附件1.csv',encoding='gbk')
data.支付时间=pd.to_datetime(data.支付时间,format='%Y/%m/%d')
data['月']=data['支付时间'].dt.month#提取出月数据,并设立一列记录月数据,方便查询
data_1=data.loc[data['月']==6]
dalei=data_1['商品'].unique().tolist()#提取出商品总列表,方便之后进行分类
datasum=[]#设立列表,以便之后使用
datasem=[]#设立列表,以便之后使用
for i in dalei:#对dalei商品数据进行筛选循环,以便提取出对于商品
    data_x=data_1[data_1['商品']==i]['实际金额'].sum()#提取出各商品对应的“实际金额”的总金额
    data_t=data_1[data_1['商品']==i]['商品'].size#提取出各商品的总数
    datasum.append(data_x)#插入列表中
    datasem.append(data_t)
task1_2 = pd.DataFrame({
   '商品':dalei,'总实际金额':datasum,'销售量':datasem})#对列表进行整理,制作成表单
task1_2.sort_values(by='销售量',ascending=False,inplace=True)#对列表进行以销售量为标准的降序排列
taen=task1_2.head()#取出前5行数据
taen

代码思路:与任务1一样,先对数据进行处理,将时间数据标准化,然后提取出月份数据,以便之后的索引。
然后提取出6月份的数据,对6月份的商品数据进行整合。
最后将数据插入列表中,建立新的表单,对表单进行以销售量为标准的降序处理,再提取出前五行数据。

结果:
结果数据
得到表单数据后,对数据进行绘制柱状图
实现代码:

%matplotlib#将图置于外窗口显视
plt.rcParams['font.sans-serif']=['SimHei']#将文字设置为微软雅黑
plt.style.use('ggplot')#设置背景图
plt.bar(x=range(taen.shape[0]),#设置柱个数
       tick_label=taen.商品,#设置x轴命名
       height=taen.销售量,#设置y轴数据
       color='red')#颜色取红色
plt.ylabel('销售量')
plt.title('6月份商品销售量前五排名')
for x,y in enumerate(taen.销售量):
    plt.text(x,y
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值