BD第8课:胸罩颜色和上胸围销售比例和分布

2023-11-08 19:20

本文主要是介绍BD第8课:胸罩颜色和上胸围销售比例和分布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文会对胸罩销售数据进行更复杂的分析,如罩杯和上胸围的综合分析,以及胸罩颜色销售数据的分析。

按上胸围分析胸罩的销售比例

按上胸围分析胸罩的销售比例与按罩杯分析胸罩的销售比例的方式相同,只是将 size1 换成了 size2。

        from pandas import *
from matplotlib.pyplot import *
import sqlite3
import sqlalchemy
# 打开SQLite数据库
engine = sqlalchemy.create_engine('sqlite:///bra.sqlite')
# 设置字体让图表显示中文
rcParams['font.sans-serif'] = ['SimHei']
options.display.float_format = '{:,.2f}%'.format
# 选择source和size2字段
sales = read_sql('select source,size2 from t_sales',engine)
# 按上胸围(size2)分组,并计算每一类上胸围的销售数据
size2Count = sales.groupby('size2')['size2'].count()
print(size2Count)size2Total = size2Count.sum()
print(size2Total)
size2 = size2Count.to_frame(name='销量')
# 插入“比例”字段,用于显示销售比例
size2.insert(0,'比例',100*size2Count/size2Total)
size2.index.names=['上胸围']
# 按销量排序
size2 = size2.sort_values(['销量'], ascending=[0])
print(size2)
# 将上胸围尺寸转换为列表,作为在饼图上显示的标签
labels = size2.index.tolist()
size2['销量'].plot(kind='pie',labels=labels,autopct='%.2f%%')
legend()
axis('equal')
show()

运行程序,会看到在窗口中绘制了如图1所示的饼图。


v2-af1b21c6dd800d87591df7d812c7d217_b.jpg

罩杯和上胸围综合数据可视化分析

罩杯和上胸围综合数据分析要稍微复杂一些,因为要同时考虑 size1 和 size2,主要是同时按 size1 和 size2 分组,但组分得这么细就会造成一个问题,有一些组的记录很少,而且组过多,如果将所有的组都放到饼图上,那么显得太乱。所以我们会将销售量比较大的组显示在饼图上,哪些销售量比较小的组统计一个总销量,都作为“其他”显示。本例将 500 作为单独显示的阈值,也就是说,只有销量大于 500 的组才会显示在饼图上。

        from pandas import *
from matplotlib.pyplot import *
import sqlite3
import sqlalchemy
engine = sqlalchemy.create_engine('sqlite:///bra.sqlite')
rcParams['font.sans-serif'] = ['SimHei']
options.display.float_format = '{:,.2f}%'.formatsales = read_sql('select source,size1,size2 from t_sales',engine)
size1size2Count = sales.groupby(['size1','size2'])['size1'].count()
print(size1size2Count)
size1size2Total = size1size2Count.sum()
print(size1size2Total)
size1size2 = size1size2Count.to_frame(name='销量')
n = 500
# 过滤出销量小等于500的组,并统计这些组的总销量,将统计结果放到DataFrame中
others = DataFrame([size1size2[size1size2['销量'] <= n].sum()],index=MultiIndex(levels=[[''],['其他']],labels=[[0],[0]]))# 将“其他”销量放到记录集的最后
size1size2 = size1size2[size1size2['销量']>n].append(others)
print(size1size2)size1size2 = size1size2.sort_values(['销量'],ascending=[0])
size1size2.insert(0,'比例',100 * size1size2Count / size1size2Total)
print(size1size2)
labels = size1size2.index.tolist()
newLabels = []
# 生成饼图外侧显示的每一部分的表示(如75B、80A等)
for label in labels:newLabels.append(label[1] + label[0])
pie(size1size2['销量'],labels=newLabels,autopct='%.2f%%')
legend()
axis('equal')
title('罩杯+上胸围销售比例')
show()

运行程序,会看到在窗口上显示了如图2所示的饼图。


v2-8cd71653c74ebdc1d23e4788f301e3f3_b.jpg

哪一种颜色的胸罩卖的最好

这一节会按颜色统计胸罩的销售比例,从而可知哪一种颜色的胸罩卖的最好。按颜色对胸罩销售数据进行统计和按罩杯、上胸围对胸罩销售数据进行统计的方式类似,只是需要将分组的字段改成 color1。

        from pandas import *
from matplotlib.pyplot import *
import sqlite3
import sqlalchemy
engine = sqlalchemy.create_engine('sqlite:///bra.sqlite')
rcParams['font.sans-serif'] = ['SimHei']
options.display.float_format = '{:,.2f}%'.format
sales = read_sql('select source,color1 from t_sales',engine)
# 按color1分组,并统计每组的数量
color1Count = sales.groupby('color1')['color1'].count()
# 统计总销量
color1Total = color1Count.sum()
print(color1Total)
color1 = color1Count.to_frame(name='销量')
print(color1)
color1.insert(0,'比例', 100 * color1Count / color1Total)
color1.index.names=['颜色']
color1 = color1.sort_values(['销量'], ascending=[0])
print(color1)
n = 1200
# 销量小于等于1200都属于“其他”分组
others = DataFrame([color1[color1['销量'] <= n].sum()],index=MultiIndex(levels=[['其他']],labels=[[0]]))
# 将others添加到原来的记录集中
color1 = color1[color1['销量']>n].append(others)
print(color1)
# 将索引转换为在饼图周围显示的标签
labels = color1.index.tolist()
pie(color1['销量'],labels=labels,autopct='%.2f%%')
legend()
axis('equal')
title('按胸罩颜色统计的比例')
show()

运行程序,会在窗口上显示如图3所示的饼图。


v2-39fe68812d28042b8387a6fcf5c8eb72_b.jpg

罩杯与上胸围分布【盒状图与直方图】

通过盒状图和直方图可以提现胸罩和上胸围的分布,也就是胸罩和上胸围主要集中在哪一个区域,要将罩杯和上胸围的综合统计数据显示在盒状图和直方图上,需要做一个变化。X 轴用浮点数同时表示罩杯和上胸围,整数部分表示罩杯,1:A、2:B、3:C、4:D。小数部分表示上胸围,如 .75 表示上胸围是 75,那么将整数和小数整合在一起就是 2.75 表示 75B、3.80 表示 80C,以此类推。

        from pandas import *
from matplotlib.pyplot import *
import sqlite3
import sqlalchemy
engine = sqlalchemy.create_engine('sqlite:///bra.sqlite')
rcParams['font.sans-serif'] = ['SimHei']
options.display.float_format = '{:,.2f}%'.format
sales = read_sql('select source,size1,size2,color1 from t_sales', engine)
# 将A、B、C、D变成1、2、3、4
sales.loc[sales['size1'] == 'A','size1'] = 1
sales.loc[sales['size1'] == 'B','size1'] = 2
sales.loc[sales['size1'] == 'C','size1'] = 3
sales.loc[sales['size1'] == 'D','size1'] = 4
sales = sales.dropna()
print(sales)
# 组合整数和小数部分,变成2.75,2.80等样式
sales['size3'] = sales['size1'].astype('str') + '.' + sales['size2'].astype('str')
print(sales)
# 将size3转换为float类型的列
sales['size3'] = sales['size3'].astype('float')
box = {'facecolor':'0.75','edgecolor':'b','boxstyle':'round'}
fig,(ax1,ax2) = subplots(1,2,figsize=(12,6))
ax1.hist(x=sales.size3) 
ax2.boxplot(sales.size3)
ax1.text(3.5,8000,'1:A\n2:B\n3:C\n4:D\n小数部分:上胸围\n1.80 = A80\n2.75 = B75',bbox = box)
ax2.text(1.2,4,'1:A\n2:B\n3:C\n4:D\n小数部分:上胸围\n1.80 = A80\n2.75 = B75',bbox = box)show()

运行程序,会在窗口上显示如图4所示的直方图和盒状图。很显然,直方图和盒状图都显示数据主要集中在 2.0 到 3.0 之间,这区间主要包含 2.75、2.80、2.85 等值。而盒状图的平均值先正好在 2.75 的位置,所以说这这一尺寸的胸罩是最多的,也就是 75B,这个分析结果也正好与图4的结果吻合(75B 尺寸的胸罩销售量最大)。


v2-9007ef58b64104cb5a56ca2894a5b6d6_b.jpg

本系列文章的项目是一个完整的集网络爬虫和数据分析于一体的系统,读者通过这个系统,可以非常全面地了解网络爬虫到底有什么用。

如果你有疑问欢迎加微信咨询:


v2-52b6f837be283214a9815bdaf2650b34_b.jpg


也可以关注我的公众号想我提问:

v2-0a9159f405d92730d1183d93d381d65d_b.jpg

这篇关于BD第8课:胸罩颜色和上胸围销售比例和分布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371957

相关文章

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

渐变颜色填充

GradientFill函数可以对特定的矩形区域或者三角形区域进行渐变颜色的填充。我们先来看看GradientFill函数到底长得什么样子,帅不帅。 [cpp]  view plain copy print ? BOOL GradientFill(     _In_  HDC hdc,     _In_  PTRIVERTEX pVertex,     _In_  ULONG

知名AIGC人工智能专家培训讲师唐兴通谈AI大模型数字化转型数字新媒体营销与数字化销售

在过去的二十年里,中国企业在数字营销领域经历了一场惊心动魄的变革。从最初的懵懂无知到如今的游刃有余,这一路走来,既有模仿学习的艰辛,也有创新突破的喜悦。然而,站在人工智能时代的门槛上,我们不禁要问:下一个十年,中国企业将如何在数字营销的浪潮中乘风破浪? 一、从跟风到精通:中国数字营销的进化史 回顾过去,中国企业在数字营销领域的发展可谓是一部"跟风学习"的编年史。从最初的搜索引擎营销(SEM),

【虚拟机/服务器】非图形化界面下修改Shell中颜色的设置

1、首先 cd ~ && ll 可以看到如下图所示 2、输入 sudo vim .bashrc 进入 .bashrc 并通过 /PS1 迅速从上往下定位第一个PS1 3、输入 i 进入插入模式后修改 else 下面的配置如下 说明:\e[1;32;40m] 其中1表示高亮显示,32表示字体颜色是绿色,40表示背景色为黑色 4、输入 esc 退出编辑模式到命令模式,再输入

真实案例分享:零售企业如何避免销售数据的无效分析?

在零售业务的数据分析中,无效分析不仅浪费时间和资源,还可能导致错误的决策。为了避免这种情况,企业必须采取策略来确保他们的数据分析工作能够产生实际的商业价值。本文将通过行业内真实的案例,探讨零售企业如何通过精心设计的数据策略和分析方法,借助商业智能BI工具,避免销售数据的无效分析,确保每一次分析都能为业务增长提供有力的支持。 文章中提到的BI数据分析工具分享给大家—— https://s.fan

Excel查询颜色RGB值

1.选中单元格,点右键,设置单元格格式-填充-其他颜色-自定义,下面显示的就是该单元格颜色的RGB值 2.与十六进制换算: https://www.sioe.cn/yingyong/yanse-rgb-16/

【销售预测 ARIMA模型】ARIMA模型预测每天的销售额

输入数据txt格式: 2017-05-01 100 2017-05-02 200 ……. python 实现arima: # encoding: utf-8"""function:时间序列预测ARIMA模型预测每天的销售额author:donglidate:2018-05-25"""# 导入库import numpy as np # numpy库from statsmode

HSV颜色空间和RGB颜色空间相互转换C语言实现

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。 色调H 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色