新手参加比赛,不足之处敬请谅解

题目链接:链接:https://pan.baidu.com/s/1ll7Y1kTr1MiJTjErwnqiVA 
提取码:zu9f

目录

任务1 对店铺进行分析

任务1.1 店铺种类统计

任务1.2 店铺销售额占比

任务1.3 阿里健康大药房销售情况

任务2 对所有药品进行分析

任务2.1 药品种类统计

任务2.2 药品销售额占比

任务2.3 药品月销售额曲线图

任务3 对所有药品品牌进行分析

任务3.1 药品品牌种类统计

任务3.2 药品品牌销售额占比

任务3.3 药品品牌销售分析

任务4

任务5

总结


题目:随着国家政策的逐步开放,越来越多的药品可以在网络上购买,医药电商平台蒸蒸日上,受新冠疫情的影响,线下药店购买困难,更让医药电商进入了更多消费者的视野,各大药企也纷纷加大力度布局医药电商领域。但电商模式与线下零售有所不同,如何更好的经营医药电商成为药企急需解决的问题。本题采集了天猫维生素类的药品,请针对维生素药品进行数据的清洗、分析与挖掘,并回答下列问题。

任务1 对店铺进行分析

对店铺进行分析,一共包含多少家店铺,各店铺的销售额占比如何?给出销售额占比最高的店铺,并分析该店铺的销售情况。

任务1.1 店铺种类统计

通过pandas的read_excel函数导入数据,使用value_counts函数对“shop_name”列计数统计,得出共包含26家店铺

import pandas as pd
data=pd.read_excel('F:\\2022全国大学生数据分析A题\\data\\data.xlsx')
data["shop_name"].value_counts()
阿里健康大药房                  16958
天猫国际进口超市                  7760
康爱多大药房旗舰店                 4051
天猫超市                      3764
ChemistWarehouse海外旗舰店     3205
焦作国控大药房旗舰店                3027
阿里健康大药房海外店                2938
nyc美林健康海外专营店              2823
thejamy保健海外专营店            2345
百康保健品专营店                  2224
康恩贝官方旗舰店                  2196
hihealth海外专营店             2196
宜度海外专营店                   2165
天猫国际妙颜社                   1755
NRC营养优选海外专营店              1742
苏宁易购官方旗舰店                 1681
nrfs湖畔海外专营店               1559
进口/国产保健品精品店               1525
康寿营养品店                    1516
百秀大药房旗舰店                  1505
LuckyVitamin海外旗舰店         1497
skyshop海外专营店              1435
搬运健康馆                     1423
美加精品                      1373
SASA美国直邮                  1228
同堂保健品专营店                  1219
Name: shop_name, dtype: int64

阿里健康大药房

天猫国际进口超市

康爱多大药房旗舰店

天猫超市

SASA美国直邮

焦作国控大药房旗舰店

阿里健康大药房海外店

同堂保健品专营店

skyshop海外专营店

百康保健品专营店

hihealth海外专营店

康恩贝官方旗舰店

宜度海外专营店

天猫国际妙颜社

搬运健康馆

苏宁易购官方旗舰店

nrfs湖畔海外专营店

进口/国产保健品精品店

康寿营养品店

百秀大药房旗舰店

美加精品

nyc美林健康海外专营店

LuckyVitamin海外旗舰店

ChemistWarehouse海外旗舰店

NRC营养优选海外专营店

thejamy保健海外专营店

任务1.2 店铺销售额占比

首先通过在Excel将“discount”列中的空值全部填充为“10折”,即无打折,接着根据公式计算出销售额,公式如下:使用group_by函数计算各店铺销售总额并求其占比。

data["discount"].value_counts()
9.5折    32338
9折      29929
8.5折     9959
10折      2884
Name: discount, dtype: int64
discount_num=[]
for i in range(len(data["shop_name"])):discount_num.append(0)
for i in range(len(data["shop_name"])):if data.loc[i,"discount"]=="10折":discount_num[i]=1.0 if data.loc[i,"discount"]=="9.5折":discount_num[i]=0.95if data.loc[i,"discount"]=="9折":discount_num[i]=0.90if data.loc[i,"discount"]=="8.5折":discount_num[i]=0.85
df_1=pd.DataFrame({'discount_num':discount_num})
df_1.to_excel('F:\\2022全国大学生数据分析A题\\data\\result_1.xlsx',sheet_name='sheet1',index=None)
total_price=[]
for i in range(len(data["shop_name"])):    total_price.append(0)
for i in range(len(data["shop_name"])):price=data.loc[i,"price"]sold=float(data.loc[i,"sold"])discount=discount_num[i]total_price[i]=float(price)*float(sold)*float(discount)
df_2=pd.DataFrame({'total_price':total_price})
df_2.to_excel('F:\\2022全国大学生数据分析A题\\data\\result_2.xlsx',sheet_name='sheet1',index=None)
data1=pd.read_excel('F:\\2022全国大学生数据分析A题\\data\\result_2.xlsx')
data1
-----------------------------------------------------------------------shop_name    total_price
0   宜度海外专营店 1041.390
1   天猫国际进口超市    31950.000
2   阿里健康大药房 7794.275
3   天猫国际进口超市    12029.850
4   阿里健康大药房 10704.000
... ... ...
75105   阿里健康大药房 182044.800
75106   阿里健康大药房海外店  34938.000
75107   hihealth海外专营店   7416.900
75108   阿里健康大药房 7871.850
75109   阿里健康大药房 19806.840
75110 rows × 2 columns
total_shop = data1.groupby("shop_name")["total_price"].sum().reset_index()
total_shop=total_shop.sort_values("total_price",ascending=True)
total_shop
----------------------------------------------------------------------------shop_name   total_price
9   同堂保健品专营店    6.539738e+04
3   SASA美国直邮    3.258235e+05
1   LuckyVitamin海外旗舰店   3.697916e+05
14  康寿营养品店  6.198878e+05
21  美加精品    6.466264e+05
23  进口/国产保健品精品店 7.276764e+05
17  搬运健康馆   7.948006e+05
5   nrfs湖畔海外专营店 8.727912e+05
2   NRC营养优选海外专营店    1.408813e+06
18  焦作国控大药房旗舰店  1.546531e+06
20  百秀大药房旗舰店    2.843618e+06
4   hihealth海外专营店   3.382795e+06
6   nyc美林健康海外专营店    4.343254e+06
16  康爱多大药房旗舰店   4.986436e+06
19  百康保健品专营店    5.288855e+06
13  宜度海外专营店 6.001669e+06
7   skyshop海外专营店    6.506159e+06
8   thejamy保健海外专营店  9.798825e+06
22  苏宁易购官方旗舰店   1.065959e+07
10  天猫国际妙颜社 3.569804e+07
0   ChemistWarehouse海外旗舰店   5.539680e+07
15  康恩贝官方旗舰店    9.559872e+07
25  阿里健康大药房海外店  1.065089e+08
12  天猫超市    1.148217e+08
11  天猫国际进口超市    3.561012e+08
24  阿里健康大药房 6.751027e+08
total_shop = data1.groupby("shop_name")["total_price"].sum().reset_index()
total_shop
---------------------------------------------------------------------------shop_name    total_price
0   ChemistWarehouse海外旗舰店   5.539680e+07
1   LuckyVitamin海外旗舰店   3.697916e+05
2   NRC营养优选海外专营店    1.408813e+06
3   SASA美国直邮    3.258235e+05
4   hihealth海外专营店   3.382795e+06
5   nrfs湖畔海外专营店 8.727912e+05
6   nyc美林健康海外专营店    4.343254e+06
7   skyshop海外专营店    6.506159e+06
8   thejamy保健海外专营店  9.798825e+06
9   同堂保健品专营店    6.539738e+04
10  天猫国际妙颜社 3.569804e+07
11  天猫国际进口超市    3.561012e+08
12  天猫超市    1.148217e+08
13  宜度海外专营店 6.001669e+06
14  康寿营养品店  6.198878e+05
15  康恩贝官方旗舰店    9.559872e+07
16  康爱多大药房旗舰店   4.986436e+06
17  搬运健康馆   7.948006e+05
18  焦作国控大药房旗舰店  1.546531e+06
19  百康保健品专营店    5.288855e+06
20  百秀大药房旗舰店    2.843618e+06
21  美加精品    6.466264e+05
22  苏宁易购官方旗舰店   1.065959e+07
23  进口/国产保健品精品店 7.276764e+05
24  阿里健康大药房 6.751027e+08
25  阿里健康大药房海外店  1.065089e+08
total_shop_new = total_shop
for i in range(len(total_shop["total_price"])):total_shop_new["total_price"][i]=(total_shop_new["total_price"][i])/total
total_shop_new
------------------------------------------------------------------------------shop_name total_price
0   ChemistWarehouse海外旗舰店   0.036921
1   LuckyVitamin海外旗舰店   0.000246
2   NRC营养优选海外专营店    0.000939
3   SASA美国直邮    0.000217
4   hihealth海外专营店   0.002255
5   nrfs湖畔海外专营店 0.000582
6   nyc美林健康海外专营店    0.002895
7   skyshop海外专营店    0.004336
8   thejamy保健海外专营店  0.006531
9   同堂保健品专营店    0.000044
10  天猫国际妙颜社 0.023792
11  天猫国际进口超市    0.237335
12  天猫超市    0.076527
13  宜度海外专营店 0.004000
14  康寿营养品店  0.000413
15  康恩贝官方旗舰店    0.063715
16  康爱多大药房旗舰店   0.003323
17  搬运健康馆   0.000530
18  焦作国控大药房旗舰店  0.001031
19  百康保健品专营店    0.003525
20  百秀大药房旗舰店    0.001895
21  美加精品    0.000431
22  苏宁易购官方旗舰店   0.007104
23  进口/国产保健品精品店 0.000485
24  阿里健康大药房 0.449943
25  阿里健康大药房海外店  0.070986
total_shop=total_shop.sort_values("total_price",ascending=True)
total_shop
---------------------------------------------------------------------shop_name  total_price
9   同堂保健品专营店    0.000044
3   SASA美国直邮    0.000217
1   LuckyVitamin海外旗舰店   0.000246
14  康寿营养品店  0.000413
21  美加精品    0.000431
23  进口/国产保健品精品店 0.000485
17  搬运健康馆   0.000530
5   nrfs湖畔海外专营店 0.000582
2   NRC营养优选海外专营店    0.000939
18  焦作国控大药房旗舰店  0.001031
20  百秀大药房旗舰店    0.001895
4   hihealth海外专营店   0.002255
6   nyc美林健康海外专营店    0.002895
16  康爱多大药房旗舰店   0.003323
19  百康保健品专营店    0.003525
13  宜度海外专营店 0.004000
7   skyshop海外专营店    0.004336
8   thejamy保健海外专营店  0.006531
22  苏宁易购官方旗舰店   0.007104
10  天猫国际妙颜社 0.023792
0   ChemistWarehouse海外旗舰店   0.036921
15  康恩贝官方旗舰店    0.063715
25  阿里健康大药房海外店  0.070986
12  天猫超市    0.076527
11  天猫国际进口超市    0.237335
24  阿里健康大药房 0.449943
total_shop=total_shop.sort_values("total_price",ascending=True)
total_shop
-------------------------------------------------------------------shop_name    total_price
9   同堂保健品专营店    0.000044
3   SASA美国直邮    0.000217
1   LuckyVitamin海外旗舰店   0.000246
14  康寿营养品店  0.000413
21  美加精品    0.000431
23  进口/国产保健品精品店 0.000485
17  搬运健康馆   0.000530
5   nrfs湖畔海外专营店 0.000582
2   NRC营养优选海外专营店    0.000939
18  焦作国控大药房旗舰店  0.001031
20  百秀大药房旗舰店    0.001895
4   hihealth海外专营店   0.002255
6   nyc美林健康海外专营店    0.002895
16  康爱多大药房旗舰店   0.003323
19  百康保健品专营店    0.003525
13  宜度海外专营店 0.004000
7   skyshop海外专营店    0.004336
8   thejamy保健海外专营店  0.006531
22  苏宁易购官方旗舰店   0.007104
10  天猫国际妙颜社 0.023792
0   ChemistWarehouse海外旗舰店   0.036921
15  康恩贝官方旗舰店    0.063715
25  阿里健康大药房海外店  0.070986
12  天猫超市    0.076527
11  天猫国际进口超市    0.237335
24  阿里健康大药房 0.449943
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
#调节图形大小,宽,高
plt.figure(figsize=(9,6))
#定义饼状图的标签,标签是列表
labels = [u"阿里健康大药房",u"天猫国际进口超市",u"其它"]
#每个标签占多大,会自动去算百分比
# sizes = [0.458,0.236,0.071,0.069,0.064,0.037,0.022,0.043]
# colors = ['red','yellowgreen','lightskyblue','cyan','lightseagreen','lime','darkorange','pink']
sizes = [0.450,0.237,0.313]
colors = ['red','yellowgreen','lightskyblue']
#将某部分爆炸出来, 使用括号,将第一块分割出来,数值的大小是分割出来的与其他两块的间隙
explode = (0.05,0,0)patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)#labeldistance,文本的位置离远点有多远,1.1指1.1倍半径的位置
#autopct,圆里面的文本格式,%3.1f%%表示小数有三位,整数有一位的浮点数
#shadow,饼是否有阴影
#startangle,起始角度,0,表示从0开始逆时针转,为第一块。一般选择从90度开始比较好看
#pctdistance,百分比的text离圆心的距离
#patches, l_texts, p_texts,为了得到饼图的返回值,p_texts饼图内部文本的,l_texts饼图外label的文本#改变文本的大小
#方法是把每一个text遍历。调用set_size方法设置它的属性
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(20)
# 设置x,y轴刻度一致,这样饼图才能是圆的
plt.axis('equal')
plt.title('药店销售额占比图', size=20)
plt.legend()
plt.show()

plt.figure(figsize=(15,6),dpi=200)
x=total_shop["shop_name"]
plt.bar(x, total_shop["total_price"], color='#87CEFA')
# plt.xlabel('时间')
plt.xticks(total_shop["shop_name"],rotation=60)
plt.ylabel('销售额占比')
plt.title('各药店销售额占比')
plt.show()

任务1.3 阿里健康大药房销售情况

data2=data[data["shop_name"]=="阿里健康大药房"]
data2["discount"].value_counts()
9.5折    10768
9折       4953
10折       663
8.5折      574
Name: discount, dtype: int64
plt.figure(figsize=(9,6))
labels = [u"9.5折",u"9折",u"8.5折",u"无打折"]
sizes = [10768,4953,574,663]
colors = ['orange','yellowgreen','lightskyblue','pink']
explode = (0.05,0,0,0)
patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(12)
for t in p_text:t.set_size(12)
plt.axis('equal')
plt.title('阿里健康大药房打折情况', size=15)
plt.legend()
plt.show()

df3=data2.sort_values(by="sold" , ascending=False)
df3
--------------------------------------------------------------date_time     id              shop_name           title                                   sku_name    price           sold        discount        brand       parameter
58239   2021-12-01  4418809521757   阿里健康大药房 3盒】星鲨维生素D滴剂(胶囊型)24粒补钙维生素D3佝偻病官方婴儿钙  3盒装 | 拍2优惠 | 维D促进钙吸收    106.666667  103940  9折  NaN 药品名称:维生素D滴剂(胶囊型)||生产企业:国药控股星鲨制药(厦门)有限公司||产品名称:...
26620   2021-06-01  4543217834215   阿里健康大药房 3盒】星鲨维生素D滴剂(胶囊型)24粒补钙维生素D佝偻病官方婴儿钙   3盒装 | 拍2优惠| 促进钙吸收   109.000000  73061   9.5折    NaN 药品名称:维生素D滴剂(胶囊型)||生产企业:国药控股星鲨制药(厦门)有限公司||产品名称:...
31883   2021-08-01  4418809521757   阿里健康大药房 3盒】星鲨维生素D滴剂(胶囊型)24粒补钙维生素D佝偻病官方婴儿钙   3盒装 | 拍2更优惠 | D促进钙吸收    109.000000  70625   9.5折    NaN 药品名称:维生素D滴剂(胶囊型)||生产企业:国药控股星鲨制药(厦门)有限公司||产品名称:...
74446   2021-02-01  3435079967513   阿里健康大药房 恒健维生素C片VC 维C100片补充维生素C妊娠呕吐发少发黄vc片药用 标准装1盒   3.400000    45895   9折  NaN 药品名称:维生素C片||生产企业:广东恒健制药有限公司||规格:100mg*100片/片||...
47489   2021-02-01  571172601110    阿里健康大药房 CONBA/康恩贝 维生素C咀嚼片(香橙味) 1.2g/片*100片补充维C VC NaN 18.900000   44511   8.5折    NaN 厂名:华润圣海健康科技有限公司||产品名称:CONBA/康恩贝 维生素C咀嚼片(香橙味) 1...
... ... ... ... ... ... ... ... ... ... ...
70770   2021-09-01  559409418908    阿里健康大药房 礼盒装汤臣倍健维生素C片vc片维C咀嚼片E官网天然维生素e软胶囊ve  NaN 109.000000  0   9折  NaN 品牌:汤臣倍健||品牌:BY-HEALTH/汤臣倍健||系列:维生素C片(橘子味)+维生素E...
44963   2021-01-01  3621111355030   阿里健康大药房 恒健维生素C片VC 维C100mg*100片/瓶补充维生素C妊娠呕吐发少发黄  1盒本品+川奇3+1牌铁锌钙氨基酸口服液 10ml/支*10支/盒 13.000000   0   8.5折    恒健  药品名称:维生素C片||生产企业:广东恒健制药有限公司||规格:100mg*100片/片||...
11440   2021-05-01  4475310558004   阿里健康大药房 海迪威维生素C泡腾片15片过敏维生素缺乏坏血病vc片泡腾 维c泡腾   套餐二:5盒,家庭装    93.000000   0   9.5折    NaN 产品名称:海迪威 维生素C泡腾片 0.5g*15片/盒||品牌:海迪威||药品通用名:维生素...
14259   2021-03-01  4475654714725   阿里健康大药房 亚宝维和维生素C泡腾片15片增强免疫力 过敏 预防传染性疾病 流感   套餐一:3盒常备装    115.000000  0   9.5折    NaN 药品通用名:维生素C泡腾片||规格:1g*15片/盒||药品名称:维生素C泡腾片||生产企业...
69475   2021-04-01  3619151867229   阿里健康大药房 呀吖维生素AD滴剂(胶囊型)20粒儿童补充维生素AD抽搐夜盲症佝偻病  1盒本品+贝亲婴儿润肤乳70G    53.300000   0   9折  NaN 品牌:呀吖||产品名称:呀吖 维生素AD滴剂(胶囊型) 20粒/盒||药品通用名:维生素AD...
16958 rows × 10 columns
data3=pd.read_excel('F:\\2022全国大学生数据分析A题\\data\\new_data.xlsx')
data4=data3[data3["shop_name"]=="阿里健康大药房"]
total_month= data4.groupby("date_time")["total_price"].sum().reset_index()
total_month
----------------------------------------------------------------------------date_time     total_price
0   2020-01-01  1.092576e+07
1   2020-02-01  9.885606e+06
2   2020-03-01  1.656051e+07
3   2020-04-01  1.579910e+07
4   2020-05-01  1.383416e+07
5   2020-06-01  2.813641e+07
6   2020-07-01  1.408467e+07
7   2020-08-01  1.767333e+07
8   2020-09-01  1.865158e+07
9   2020-10-01  1.443941e+07
10  2020-11-01  1.935696e+07
11  2020-12-01  3.204151e+07
12  2021-01-01  2.240306e+07
13  2021-02-01  2.787846e+07
14  2021-03-01  3.541297e+07
15  2021-04-01  2.932532e+07
16  2021-05-01  3.180636e+07
17  2021-06-01  6.001385e+07
18  2021-07-01  3.384237e+07
19  2021-08-01  3.590081e+07
20  2021-09-01  3.550590e+07
21  2021-10-01  4.110051e+07
22  2021-11-01  4.706524e+07
23  2021-12-01  6.345886e+07
plt.figure(figsize=(15,6),dpi=200)
x=["2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09","2020-10","2020-11","2020-12","2021-01","2021-02","2021-03","2021-04","2021-05","2021-06","2021-07","2021-08","2021-09","2021-10","2021-11","2021-12"]
y=total_month["total_price"]
plt.plot(x, y, color='orange')
plt.xlabel('时间')
plt.xticks(x,rotation=70)
plt.ylabel('当月销售额')
plt.title('阿里健康大药房2020-2021年各月份销售额')
plt.show()

data5=data4.groupby("title")["sold"].sum().reset_index()
data5.sort_values(by="sold" , ascending=False)
---------------------------------------------------------------------------title                                          sold
363 丽点维A酸乳膏20g去闭口粉刺暗疮软膏维生素a维a乳酸膏乳软膏祛痘   404107
105 3盒】星鲨维生素D滴剂(胶囊型)24粒补钙维生素D佝偻病官方婴儿钙   267120
1190    浙江医药维生素E软胶囊30粒心脑血管疾病 习惯性流产不孕ve胶囊    252963
9   21金维他多维元素片100片复合维生素B b6 b1 b2维生素c钙铁锌21  232891
1026    星鲨维生素D滴剂(胶囊型)30粒儿童补钙补充维生素D发育迟缓佝偻病   227536
... ... ...
1614    限量买1送2 汤臣倍健R葡萄籽维生素C加E片 410mg/片*90片VCVE成人    0
1372    维生素B2片5mg*100片/瓶脂溢性皮炎口角炎唇干裂结膜炎阴囊炎   0
1108    汤臣倍健 维生素C片(橘子味)+维生素E60粒礼盒天然维生素e维C    0
1133    汤臣倍健R葡萄籽维生素C加E片 410mg/片*90片VCVE成人   0
1268    礼盒装汤臣倍健维生素C片vc片维C咀嚼片E官网天然维生素e软胶囊ve  0
1663 rows × 2 columns
data5=data4.groupby("title")["total_price"].sum().reset_index()
data5.sort_values(by="total_price" , ascending=False)
-------------------------------------------------------------------title                    total_price
1637    领券减】爱乐维复合维生素100片孕妇叶酸补充备孕早期多维元素B 3.569218e+07
105 3盒】星鲨维生素D滴剂(胶囊型)24粒补钙维生素D佝偻病官方婴儿钙   2.836576e+07
116 3盒包邮】达因伊可新维生素AD滴剂30粒1岁以上AD预防佝偻病ad滴剂 1.622559e+07
104 3盒】星鲨维生素D滴剂(胶囊型)24粒补钙维生素D3佝偻病官方婴儿钙  1.612723e+07
9   21金维他多维元素片100片复合维生素B b6 b1 b2维生素c钙铁锌21  1.508954e+07
... ... ...
1133    汤臣倍健R葡萄籽维生素C加E片 410mg/片*90片VCVE成人   0.000000e+00
171 BY-HEALTH/汤臣倍健 维生素C片(橘子味)+维生素E60粒礼盒   0.000000e+00
1614    限量买1送2 汤臣倍健R葡萄籽维生素C加E片 410mg/片*90片VCVE成人    0.000000e+00
1372    维生素B2片5mg*100片/瓶脂溢性皮炎口角炎唇干裂结膜炎阴囊炎   0.000000e+00
1108    汤臣倍健 维生素C片(橘子味)+维生素E60粒礼盒天然维生素e维C    0.000000e+00
1663 rows × 2 columns

任务2 对所有药品进行分析

对所有药品进行分析,一共包含多少个药品,各药品的销售额占比如何?给出销售额占比最高的 10 个药品,并绘制这 10 个药品每月销售额曲线图。

任务2.1 药品种类统计

import pandas as pd
data=pd.read_excel('F:\\2022全国大学生数据分析A题\\data\\new_data.xlsx')
data["id"].value_counts()
------------------------------------------------------------------------
3566974752915    24
564979974262     24
3601587058427    24
3232160081409    24
544066576806     24..
4391874217388     1
4629962755717     1
544106976534      1
4631336339308     1
590797340368      1
Name: id, Length: 9697, dtype: int64

任务2.2 药品销售额占比

total_id=data.groupby("id")["total_price"].sum().reset_index()
total_id=total_id.sort_values("total_price",ascending=False)
total_id
------------------------------------------------------------------id            total_price
6594    4169804230645   3.975427e+07
8951    4521420762240   2.521464e+07
5311    3415285443577   2.503826e+07
8093    4418809521757   2.403036e+07
1058    542510921766    1.787574e+07
... ... ...
6270    4012427304925   0.000000e+00
6271    4012427304926   0.000000e+00
6272    4012427304927   0.000000e+00
6273    4012427304928   0.000000e+00
6499    4135649044700   0.000000e+00
9697 rows × 2 columns
id_ten=total_id.head(10)
id_ten
----------------------------------------------------id      total_price
6594    4169804230645   3.975427e+07
8951    4521420762240   2.521464e+07
5311    3415285443577   2.503826e+07
8093    4418809521757   2.403036e+07
1058    542510921766    1.787574e+07
1747    551699740249    1.625078e+07
5306    3414540274727   1.316437e+07
9055    4543217834215   1.287603e+07
5400    3452991932319   1.238747e+07
7207    4296851710480   1.211168e+07
total=total_id["total_price"].sum()
total
-------------------------------------------------
1500417429.02092
id_sold_percent=[]
for i in range(len(id_ten["id"])):id_sold_percent.append(0)
for i in range(len(id_ten["id"])):id_sold_percent[i]=list(id_ten["total_price"])[i]/total
id_sold_percent
--------------------------------------------------------------
[0.02649547009406077,0.01680508355154942,0.016687532759692366,0.01601578263171197,0.011913841790457338,0.010830836469024661,0.00877380237351032,0.008581630718860754,0.008256018576608164,0.008072208383971744]

任务2.3 药品月销售额曲线图

data_yp1=data[data["id"]==4169804230645]
#data_yp1
total_month_yp1= data_yp1.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp1
data_yp2=data[data["id"]==4521420762240]
# data_yp2
total_month_yp2= data_yp2.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp2
data_yp3=data[data["id"]==3415285443577]
# data_yp3
total_month_yp3= data_yp3.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp3
data_yp4=data[data["id"]==4418809521757]
# data_yp4
total_month_yp4= data_yp4.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp4
data_yp5=data[data["id"]==542510921766]
# data_yp5
total_month_yp5= data_yp5.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp5
data_yp6=data[data["id"]==551699740249]
# data_yp6
total_month_yp6= data_yp6.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp6
data_yp7=data[data["id"]==3414540274727]
# data_yp7
total_month_yp7= data_yp7.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp7
data_yp8=data[data["id"]==4543217834215]
# data_yp8
total_month_yp8= data_yp8.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp8
data_yp9=data[data["id"]==3452991932319]
data_yp9
total_month_yp9= data_yp9.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp9
data_yp10=data[data["id"]==4296851710480]
data_yp10
total_month_yp10= data_yp10.groupby("date_time")["total_price"].sum().reset_index()
total_month_yp10
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']plt.figure(figsize=(20,30),dpi=200)
ax=plt.subplot(5,2,1)
x_1=["2020-7","2020-8","2020-9","2020-10","2020-11","2020-12","2021-01","2021-02","2021-03","2021-04","2021-05","2021-06","2021-07","2021-08","2021-09","2021-10","2021-11","2021-12"]
y_1=total_month_yp1["total_price"]
plt.plot(x_1, y_1, color='orange')
plt.xticks(x_1,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:4169804230645月份销售额')ax=plt.subplot(5,2,2)
x_2=["2021-04","2021-05","2021-06","2021-07","2021-08","2021-10","2021-12",]
y_2=total_month_yp2["total_price"]
plt.plot(x_2, y_2, color='orange')
plt.xticks(x_2,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:4521420762240月份销售额')ax=plt.subplot(5,2,3)
x_3=["2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-08","2020-09","2020-10","2020-12","2021-01","2021-02","2021-03"]
y_3=total_month_yp3["total_price"]
plt.plot(x_3, y_3, color='orange')
plt.xticks(x_3,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:3415285443577月份销售额')ax=plt.subplot(5,2,4)
x_4=["2021-07","2021-08","2021-10","2021-11","2021-12"]
y_4=total_month_yp4["total_price"]
plt.plot(x_4, y_4, color='orange')
plt.xticks(x_4,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:4418809521757月份销售额')ax=plt.subplot(5,2,5)
x_5=["2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09","2020-10","2020-11","2020-12","2021-01","2021-02","2021-03","2021-04","2021-05","2021-06","2021-07","2021-08","2021-09","2021-10","2021-11","2021-12"]
y_5=total_month_yp5["total_price"]
plt.plot(x_5, y_5, color='orange')
plt.xticks(x_5,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:542510921766月份销售额')ax=plt.subplot(5,2,6)
x_6=["2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09","2020-10","2020-11","2020-12","2021-01","2021-02"]
y_6=total_month_yp6["total_price"]
plt.plot(x_6, y_6, color='orange')
plt.xticks(x_6,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:551699740249月份销售额')ax=plt.subplot(5,2,7)
x_7=["2020-01","2020-02","2020-03","2020-04","2021-03","2021-04","2021-07"]
y_7=total_month_yp7["total_price"]
plt.plot(x_7, y_7, color='orange')
plt.xticks(x_7,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:3414540274727月份销售额')ax=plt.subplot(5,2,8)
x_8=["2021-05","2021-06","2021-07"]
y_8=total_month_yp8["total_price"]
plt.plot(x_8, y_8, color='orange')
plt.xticks(x_8,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:4543217834215月份销售额')ax=plt.subplot(5,2,9)
x_9=["2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09","2020-10","2020-11","2020-12","2021-01","2021-02","2021-03","2021-04","2021-05","2021-06","2021-07","2021-08","2021-10","2021-11","2021-12"]
y_9=total_month_yp9["total_price"]
plt.plot(x_9, y_9, color='orange')
plt.xticks(x_9,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:3452991932319月份销售额')ax=plt.subplot(5,2,10)
x_10=["2020-01","2020-05","2020-06","2020-07","2020-09","2020-10","2020-11","2020-12","2021-01","2021-02"]
y_10=total_month_yp10["total_price"]
plt.plot(x_10, y_10, color='orange')
plt.xticks(x_10,rotation=70)
plt.ylabel('当月销售额')
plt.title('id:4296851710480月份销售额')
plt.show()

任务3 对所有药品品牌进行分析

对所有药品品牌进行分析,一共包含多少个品牌,各品牌的销售额占比如何?给出销售额占比最高的 10 个品牌,并分析这 10 个品牌销售较好的原因?

任务3.1 药品品牌种类统计

import pandas as pd
data=pd.read_excel('F:\\2022全国大学生数据分析A题\\data\\new_data.xlsx')
import numpy as np
data.dropna(axis=0,subset = ['parameter'],inplace=True)
data = data.reset_index(drop=True)
brand=[]
for i in range(len(data["parameter"])):brand.append(0)
for i in range(len(data["parameter"])):str1=data.loc[i,"parameter"].replace("||",",")#print(i)parameter_dict = {}content=str1.splitlines()str2=content[0].split(',')for j in str2:k, v = j.split(':')parameter_dict[k] = vbrand_parameter=parameter_dict["品牌"]brand[i]=brand_parameter
data["brand"]=brand
data
-----------------------------------------------------------------date_time  id  shop_name       title           sku_name    price   sold    discount    total_price brand   parameter
0   2020-11-01  3985971101463   宜度海外专营店 特价处理!超低价19.9元起!含维生素ABCDE B族B12 维生素锌硒片 维生素e 300粒--买3送1 60.900000   19  9折  1041.390    Puritan‘s Pride/普丽普莱    厂名:Puritan's Pride||品牌:Puritan‘s Pride/普丽普莱||生...
1   2020-11-01  4224064440294   天猫国际进口超市    FANCL男40岁综合营养包30包/袋*2复合多种维生素日本芳珂fancl   (【直营】日本FANCL/芳珂 40岁男性综合维生素营养 30袋(30天量))*2 500.000000  71  9折  31950.000   FANCL   品牌:FANCL||系列:综合营养包||生产企业:FANCL株式会社
2   2021-12-01  3437759489038   阿里健康大药房 民生21金维他多维元素片30片儿童男女成人补充维生素矿物质缺乏 国民大牌| 补充21种维矿   22.416667   366 9.5折    7794.275    21金维他   产品名称:21金维他 多维元素片(21) 30片*1瓶/盒||药品通用名:多维元素片(21)...
3   2021-12-01  576002931540    天猫国际进口超市    【直营】美国进口安利简装倍立健多种复合维生素矿物质营养186片 NaN 452.250000  28  9.5折    12029.850   AMWAY/安利    厂名:Amway Dominican Republic LLC||生产企业:Amway||系...
4   2021-03-01  4363644898037   阿里健康大药房 买2送礼】elevit/爱乐维复合维生素片140粒维生素缺乏症贫血官方 爱乐维玛咖锌淫羊藿胶囊140粒+爱乐维 复合维生素片30片/盒    371.666667  32  9折  10704.000   elevit/爱乐维  品牌:elevit/爱乐维||药品名称:复合维生素片||药品通用名:复合维生素片||生产企业...
... ... ... ... ... ... ... ... ... ... ... ...
72553   2021-03-01  3435079967513   阿里健康大药房 恒健维生素C片VC 维C100片补充维生素C妊娠呕吐发少发黄vc片药用 标准装1盒   6.000000    33712   9折  182044.800  恒健  药品名称:维生素C片||生产企业:广东恒健制药有限公司||规格:100mg*100片/片||...
72554   2021-10-01  568442923286    阿里健康大药房海外店  日本参天维生素B12+E眼药水*12ml 滴眼液 缓解眼疲劳 眼疾预防    NaN 60.000000   647 9折  34938.000   参天  品牌:Santen/参天||药品通用名:滴眼液||生产企业:参天製薬株式会社||药品规格:1...
72555   2020-03-01  534742130942    hihealth海外专营店   【3倍购买】美国GNC综合营养包30天套装 含钙片/DHA/维生素   NaN 201.000000  41  9折  7416.900    GNC/健安喜 系列:维生素矿物质精华(孕妇)||厂名:General Nutrition Corporat...
72556   2020-04-01  3733029515023   阿里健康大药房 星鲨维生素E软胶囊100mg*60粒/盒心脑血管疾病 流产 不孕症   本品5盒 优惠装 节省2.5元 73.500000   119 9折  7871.850    星鲨  规格:100mg*60粒/盒||生产企业:国药控股星鲨制药(厦门)有限公司||产品名称:星鲨...
72557   2020-08-01  4068429729290   阿里健康大药房 力生 复合维生素B片100片/盒 维生素缺乏症脚气矿物质缺乏症厌食   标准装 7.400000    2974    9折  19806.840   力生  产品名称:力生 复合维生素B片 100片/盒||生产企业:天津力生制药股份有限公司||药品通...
72558 rows × 11 columns
data["brand"].value_counts().head(10)
---------------------------------------------------
BY-HEALTH/汤臣倍健          5675
CONBA/康恩贝               4196
GNC/健安喜                 3967
CENTRUM/善存              3394
swisse                  3205
汤臣倍健                    3186
养生堂                     2939
Puritan‘s Pride/普丽普莱    1907
Jamieson/健美生            1841
NOW/诺奥                  1546
Name: brand, dtype: int64
total_brand= data.groupby("brand")["total_price"].sum().reset_index()
total_brand.sort_values("total_price",inplace=True, ascending=False)
total_brand
-----------------------------------------------------------------------brand    total_price
317 swisse  2.821440e+08
55  CONBA/康恩贝   1.226368e+08
51  CENTRUM/善存  1.128456e+08
284 elevit/爱乐维  1.008569e+08
423 星鲨  9.825920e+07
... ... ...
45  Botanic Choice  8.550000e+01
370 吉医堂 8.000000e+01
186 OUT OF AFRICA   5.015000e+01
435 永昇金维    4.940000e+01
521 难老泉 4.200000e+01
530 rows × 2 columns

任务3.2 药品品牌销售额占比

total=total_brand["total_price"].sum()
ten_total_brand=total_brand.head(10)
ten_total_brand
------------------------------------------------brand   total_price
317 swisse  2.821440e+08
55  CONBA/康恩贝   1.226368e+08
51  CENTRUM/善存  1.128456e+08
284 elevit/爱乐维  1.008569e+08
423 星鲨  9.825920e+07
339 伊可新 5.991355e+07
355 养生堂 5.900897e+07
33  BY-HEALTH/汤臣倍健   4.588620e+07
85  FANCL   3.761334e+07
425 朗迪  3.281707e+07
brand_sold_percent=[]
for i in range(len(ten_total_brand["brand"])):brand_sold_percent.append(0)
for i in range(len(ten_total_brand["brand"])):brand_sold_percent[i]=list(total_brand["total_price"])[i]/total
brand_sold_percent
-----------------------------------------------------------------------
[0.18973373776485433,0.08246969958533347,0.07588545618742933,0.0678233886888395,0.06607649132273377,0.04029014581431487,0.03968184231814414,0.030857155568868446,0.02529389012975293,0.022068541829650644]
​
plt.figure(figsize=(8,6),dpi=100)
x_10=["swisse","CONBA/康恩贝","CENTRUM/善存","elevit/爱乐维","星鲨","伊可新","养生堂","BY-HEALTH/汤臣倍健","FANCL","朗迪"]
y_10=[18.97,8.25,7.59,6.78,6.61,4.03,3.97,3.09,2.53,2.21]
plt.barh(x_10, y_10, color='cyan')
plt.xlabel('品牌销售额占比 单位:%')
plt.ylabel('品牌')
plt.title('销售额占比最高的十大品牌销售额占比')
plt.show()

任务3.3 药品品牌销售分析

data_pp1=data[data["brand"]=="swisse"]
data_pp1["discount"].value_counts()----------------------------------------------data_pp1["price"].mean()  #238.76599858001455----------------------------------------------top1_sold=data_pp1.sort_values("sold" ,ascending=False)
top1_sold.head(10)----------------------------------------------top1_total_price=data_pp1.sort_values("total_price" ,ascending=False)
top1_total_price.head(10)
data_pp2=data[data["brand"]=="CONBA/康恩贝"]
data_pp2["discount"].value_counts()------------------------------------------------data_pp2["price"].mean() #57.49846914842359-----------------------------------------------------top2_sold=data_pp2.sort_values("sold" ,ascending=False)
top2_sold.head(10)-----------------------------------------------------
top2_total_price=data_pp2.sort_values("total_price" ,ascending=False)
top2_total_price.head(10)
data_pp3=data[data["brand"]=="CENTRUM/善存"]
data_pp3["discount"].value_counts()--------------------------------------------------
data_pp3["price"].mean()--------------------------------------------------top3_sold=data_pp3.sort_values("sold" ,ascending=False)
top3_sold.head(10)--------------------------------------------------
top3_total_price=data_pp3.sort_values("total_price" ,ascending=False)
top3_total_price.head(10)
data_pp4=data[data["brand"]=="elevit/爱乐维"]
data_pp4["discount"].value_counts()----------------------------------------------------
data_pp4["price"].mean()
----------------------------------------------------top4_sold=data_pp4.sort_values("sold" ,ascending=False)
top4_sold.head(10)----------------------------------------------------
top4_total_price=data_pp4.sort_values("total_price" ,ascending=False)
top4_total_price.head(10)
data_pp5=data[data["brand"]=="星鲨"]
data_pp5["discount"].value_counts()-------------------------------------------------
data_pp5["price"].mean()
-------------------------------------------------
top5_sold=data_pp5.sort_values("sold" ,ascending=False)
top5_sold.head(10)
-------------------------------------------------
top5_total_price=data_pp5.sort_values("total_price" ,ascending=False)
top5_total_price.head(10)
data_pp6=data[data["brand"]=="伊可新"]
data_pp6["discount"].value_counts()
---------------------------------------
data_pp6["price"].mean()
---------------------------------------
top6_sold=data_pp6.sort_values("sold" ,ascending=False)
top6_sold.head(10)
---------------------------------------
top6_total_price=data_pp6.sort_values("total_price" ,ascending=False)
top6_total_price.head(10)
data_pp7=data[data["brand"]=="养生堂"]
data_pp7["discount"].value_counts()
------------------------------------------
data_pp7["price"].mean()
----------------------------------------
top7_sold=data_pp7.sort_values("sold" ,ascending=False)
top7_sold.head(10)
----------------------------------------
top7_total_price=data_pp7.sort_values("total_price" ,ascending=False)
top7_total_price.head(10)
data_pp8=data[data["brand"]=="BY-HEALTH/汤臣倍健"]
data_pp8["discount"].value_counts()
------------------------------------------------data_pp8["price"].mean()
------------------------------------------------
top8_sold=data_pp8.sort_values("sold" ,ascending=False)
top8_sold.head(10)
------------------------------------------------top8_total_price=data_pp8.sort_values("total_price" ,ascending=False)
top8_total_price.head(10)
data_pp9=data[data["brand"]=="FANCL"]
data_pp9["discount"].value_counts()
---------------------------------------------
data_pp9["price"].mean()
---------------------------------------------
top9_sold=data_pp9.sort_values("sold" ,ascending=False)
top9_sold.head(10)
---------------------------------------------
top9_total_price=data_pp9.sort_values("total_price" ,ascending=False)
top9_total_price.head(10)
data_pp10=data[data["brand"]=="朗迪"]
data_pp10["discount"].value_counts()
---------------------------------------------
data_pp10["price"].mean()
---------------------------------------------
top10_sold=data_pp10.sort_values("sold" ,ascending=False)
top10_sold.head(10)
---------------------------------------------
top10_total_price=data_pp10.sort_values("total_price" ,ascending=False)
top10_total_price.head(10)
plt.figure(figsize=(20,18))
ax=plt.subplot(3,4,1)
labels_1 = [u"9折",u"9.5折",u"8.5折",u"无打折"]
#每个标签占多大,会自动去算百分比
sizes_1 = [2037,805,336,27]
colors = ['orange','yellowgreen','lightskyblue','yellow']
#将某部分爆炸出来, 使用括号,将第一块分割出来,数值的大小是分割出来的与其他两块的间隙
explode = (0.05,0,0,0)patches,l_text,p_text = plt.pie(sizes_1,explode=explode,labels=labels_1,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
# 设置x,y轴刻度一致,这样饼图才能是圆的
plt.axis('equal')
plt.title('swisse', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,2)
labels_2 = [u"9.5折",u"9折",u"8.5折",u"无打折"]
sizes_2 = [2366,1384,311,135]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0,0)
patches,l_text,p_text = plt.pie(sizes_2,explode=explode,labels=labels_2,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('CONBA/康恩贝', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,3)
labels_3 = [u"9.5折",u"9折",u"8.5折",u"无打折"]
sizes_3 = [1699,1403,137,155]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0,0)
patches,l_text,p_text = plt.pie(sizes_3,explode=explode,labels=labels_3,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('CENTRUM/善存', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,4)
labels_4 = [u"9.5折",u"9折",u"无打折"]
sizes_4 = [266,127,10]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0)
patches,l_text,p_text = plt.pie(sizes_4,explode=explode,labels=labels_4,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('elevit/爱乐维', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,5)
labels_5 = [u"9.5折",u"9折",u"无打折"]
sizes_5= [812,216,7]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0)
patches,l_text,p_text = plt.pie(sizes_5,explode=explode,labels=labels_5,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('星鲨', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,6)
labels_6 = [u"9.5折",u"9折",u"无打折"]
sizes_6= [250,219,1]
colors = ['orange','yellowgreen','blue']
explode = (0.05,0,0)
patches,l_text,p_text = plt.pie(sizes_6,explode=explode,labels=labels_6,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('伊可新', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,7)
labels_7 = [u"9折",u"9.5折",u"8.5折",u"无打折"]
sizes_7= [1434,1155,254,96]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0,0)
patches,l_text,p_text = plt.pie(sizes_7,explode=explode,labels=labels_7,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('养生堂', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,8)
labels_8 = [u"9.5折",u"9折",u"8.5折",u"无打折"]
sizes_8= [2403,2129,967,176]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0,0)
patches,l_text,p_text = plt.pie(sizes_8,explode=explode,labels=labels_8,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('BY-HEALTH/汤臣倍健', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,9)
labels_9 = [u"9折",u"9.5折",u"8.5折",u"无打折"]
sizes_9= [657,219,170,2]
colors = ['orange','yellowgreen','lightskyblue','blue']
explode = (0.05,0,0,0)
patches,l_text,p_text = plt.pie(sizes_9,explode=explode,labels=labels_9,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('FANCL', size=15)
plt.legend(loc=2)ax=plt.subplot(3,4,10)
labels_10 = [u"9.5折",u"9折",u"无打折"]
sizes_10= [59,32,1]
colors = ['orange','yellowgreen','lightskyblue','yellow']
explode = (0.05,0,0)
patches,l_text,p_text = plt.pie(sizes_10,explode=explode,labels=labels_10,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
for t in l_text:t.set_size(15)
for t in p_text:t.set_size(15)
plt.axis('equal')
plt.title('朗迪', size=15)
plt.legend(loc=2)
plt.show()

任务4

预测天猫维生素类药品未来三个月的销售总额并绘制拟合曲线,评估模型性能和误差。
import pandas as pd
data=pd.read_excel('F:\\比赛\\2022全国大学生数据分析大赛\\2022全国大学生数据分析A题\\data\\new_data.xlsx')
total_month= data.groupby("date_time")["total_price"].sum().reset_index()
total_month
----------------------------------------------date_time total_price
0   2020-01-01  2.907732e+07
1   2020-02-01  2.402555e+07
2   2020-03-01  3.883273e+07
3   2020-04-01  3.378211e+07
4   2020-05-01  3.248638e+07
5   2020-06-01  7.414630e+07
6   2020-07-01  3.305252e+07
7   2020-08-01  4.263468e+07
8   2020-09-01  4.516212e+07
9   2020-10-01  3.485498e+07
10  2020-11-01  4.926924e+07
11  2020-12-01  9.077518e+07
12  2021-01-01  5.548417e+07
13  2021-02-01  5.734087e+07
14  2021-03-01  7.462681e+07
15  2021-04-01  6.681211e+07
16  2021-05-01  6.643281e+07
17  2021-06-01  1.210244e+08
18  2021-07-01  6.617255e+07
19  2021-08-01  7.787211e+07
20  2021-09-01  8.814363e+07
21  2021-10-01  8.217563e+07
22  2021-11-01  8.188439e+07
23  2021-12-01  1.343489e+08
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.figure(figsize=(15,6))
x=["2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09","2020-10","2020-11","2020-12","2021-01","2021-02","2021-03","2021-04","2021-05","2021-06","2021-07","2021-08","2021-09","2021-10","2021-11","2021-12"]
y=total_month["total_price"]
plt.plot(x, y, color='blue')
plt.scatter(x, y, marker='o',label='真实值')
plt.xlabel('时间')
plt.xticks(x,rotation=70)
plt.ylabel('当月销售总额')
plt.title('天猫维生素类药品2020-2021月销售总额')
plt.show()

x=range(1,25)
y=total_month["total_price"]
data_1 = pd.DataFrame({'month':x,'total':y})from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_scoreimport pandas as pdx=data_1['month']
y=data_1['total']x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.8,random_state=420)
x_train=np.array(x_train)
x_train=x_train.reshape(-1,1)
x_test=np.array(x_test)
x_test=x_test.reshape(-1,1)
# 逻辑回归
from sklearn.linear_model import LogisticRegression
# k近邻回归
from sklearn.neighbors import KNeighborsRegressor
# 梯度提升回归,随机森林回归
from sklearn.ensemble import GradientBoostingRegressor,RandomForestRegressorimport numpy as np
from sklearn.metrics import r2_score,mean_absolute_error,mean_squared_errordef predict(ml_model):print("Model is: ", ml_model)model = ml_model.fit(x_train, y_train)print("Training score: ", model.score(x_train,y_train))print("Testing score: ", model.score(x_test,y_test))predictions = model.predict(x_train)new_predictions1=model.predict(x_test)print(new_predictions1)print(x_test1[0],model.predict([x_test1[0]]))print(x_test1[1],model.predict([x_test1[1]]))print(x_test1[2],model.predict([x_test1[2]]))print("Predictions: ", predictions)print("未来三个月: ", new_predictions1)print('-----------------')r2score = r2_score(y_train, predictions)print("r2 score is: ", r2score)print('MAE:{}', mean_absolute_error(y_train,predictions))print('MSE:{}', mean_squared_error(y_train,predictions))print('RMSE:{}', np.sqrt(mean_squared_error(y_train,predictions)))
predict(RandomForestRegressor(n_estimators=1))
Model is:  RandomForestRegressor(n_estimators=1)
Training score:  0.5991487172457902
Testing score:  0.42010461927846376
[33052515.35550007 33052515.35550007 45162116.98549996 45162116.9854999645162116.98549996 45162116.98549996 33052515.35550007 77872105.1134497133052515.35550007 77872105.11344971 33052515.35550007 77872105.1134497177872105.11344971 33052515.35550007 33052515.35550007 77872105.1134497177872105.11344971 77872105.11344971 45162116.98549996 77872105.11344971]
[25] [77872105.11344971]
[26] [77872105.11344971]
[27] [77872105.11344971]
Predictions:  [77872105.11344971 33052515.35550007 45162116.98549996 77872105.11344971]
未来三个月:  [33052515.35550007 33052515.35550007 45162116.98549996 45162116.9854999645162116.98549996 45162116.98549996 33052515.35550007 77872105.1134497133052515.35550007 77872105.11344971 33052515.35550007 77872105.1134497177872105.11344971 33052515.35550007 33052515.35550007 77872105.1134497177872105.11344971 77872105.11344971 45162116.98549996 77872105.11344971]
-----------------
r2 score is:  0.5991487172457902
MAE:{} 10788062.82364067
MSE:{} 465529197947271.7
RMSE:{} 21576125.64728134
predict(KNeighborsRegressor()) 
Model is:  KNeighborsRegressor()
Training score:  0.6370239169965028
Testing score:  0.3394163469624
[40508925.39704183 40508925.39704183 75633066.65863588 60460618.7741333860460618.7741334  46823311.32433338 46823311.32433337 84057002.94282563]
[25] [92884930.5029359]
[26] [92884930.5029359]
[27] [92884930.5029359]
Predictions:  [40508925.39704183 81353638.70452581 43725883.86203337 81353638.7045258192884930.5029359  40508925.39704183 40508925.39704183 92884930.502935992884930.5029359  92884930.5029359  53784559.06508334 75633066.6586358787129707.09845188 43725883.86203337 46823311.32433338 84057002.94282563]
未来三个月:  [40508925.39704183 40508925.39704183 75633066.65863588 60460618.7741333860460618.7741334  46823311.32433338 46823311.32433337 84057002.94282563]
-----------------
r2 score is:  0.6370239169965028
MAE:{} 13628745.447811129
MSE:{} 322974512565174.06
RMSE:{} 17971491.662218083
predict(GradientBoostingRegressor())
Model is:  GradientBoostingRegressor()
Training score:  0.9999325937942306
Testing score:  -0.7114452499656005
[3.35533345e+07 2.92082264e+07 7.41115578e+07 4.92738241e+074.92738241e+07 4.52227237e+07 3.34846423e+07 1.20764272e+08]
[25] [1.34212591e+08]
[26] [1.34212591e+08]
[27] [1.34212591e+08]
Predictions:  [2.92082264e+07 6.68768505e+07 7.38043656e+07 6.66349711e+071.34212591e+08 3.35533345e+07 3.27093976e+07 8.22873770e+078.79706007e+07 8.20561062e+07 4.92738241e+07 7.41115578e+077.81258889e+07 3.34846423e+07 4.52227237e+07 1.20764272e+08]
未来三个月:  [3.35533345e+07 2.92082264e+07 7.41115578e+07 4.92738241e+074.92738241e+07 4.52227237e+07 3.34846423e+07 1.20764272e+08]
-----------------
r2 score is:  0.9999325937942306
MAE:{} 206922.37756619183
MSE:{} 59977743635.64004
RMSE:{} 244903.53945102557
x_1=range(1,28)
y_1=list(y_train)
y_1.append(1.33865662e+08)
y_1.append(1.33865662e+08)
y_1.append(1.33865662e+08)x_2=[25,26,27]
y_2=[1.33865662e+08,1.33865662e+08,1.33865662e+08]
plt.figure(figsize=[12,6])
plot1 = plt.plot(x, y, '*',c="blue",label='原始数据')
plt.plot(x_2,y_2,'o',c='red',label='未来三个月')
plot2 = plt.plot(x_1, y_1, 'black',label='拟合曲线')
plt.xlabel("月份")
plt.xticks(x_1)
plt.ylabel('y')
plt.legend(loc=4,prop = {'size':18}) #指定legend的位置右下角
plt.title('多项式拟合')
plt.show()

任务5

一家药企计划将新的维生素品牌进行网络销售,聘请你当企业的顾问,请你设计一份不超过两页纸的电商经营策略。

总结

1)本次比赛的代码过于冗杂,很多地方都可以进行优化

2)论文整体质量比上一次参加稍有进步

最后插个小广告hhh(适合数据分析初学者&入门者)

(出售本次比赛的论文、源程序、支撑材料,仅供学习使用,仅供学习使用,仅供学习使用)

2022全国大学生数据分析大赛A题-医药电商销售数据分析相关推荐

  1. 2022全国大学生数据分析大赛A题完整解题教程及代码 医药电商销售数据分析

    题目 A:医药电商销售数据分析 完整解题 随着国家政策的逐步开放,越来越多的药品可以在网络上购买, 医药电商平台蒸蒸日上,受新冠疫情的影响,线下药店购买困难,更 让医药电商进入了更多消费者的视野,各大 ...

  2. 【python】【数据分析】2022年全国大学生数据分析大赛题解-医药电商销售数据分析

    文章目录 一.前言 二.题目 三.题解 1.对店铺进行分析,一共包含多少家店铺,各店铺的销售额占比如何?给出销售额占比最高的店铺,并分析该店铺的销售情况. 2.对所有药品进行分析,一共包含多少个药品, ...

  3. 电商销售数据分析与预测(日期数据统计、按天统计、按月统计)

    本文来自<Python数据分析从入门到精通>--明日科技编著 随着电商行业的激烈竞争,电商平台推出了各种数字营销方案,付费广告也是花样繁多.那么电商投入广告后,究竟能给企业增加多少收益,对 ...

  4. 日用品电商销售数据分析

    分析报告结论: 1.日用品办公文具的整体销售情况数据持续上升可观,但是对于用户个体的销售金额和商品购买量及次数都集中在区间的低段水平,所以对于此类交易群体,可在丰富日用品产品线例如针对儿童,年轻群体( ...

  5. python商业数据分析报告范文_python案例分析之电商销售数据分析

    import pandas as pd #读取文件 data= pd.read_csv('./dataset.csv') ########################### 查看数据概览 #### ...

  6. 2022全国大学生数学建模A题的思路与解法

    题目回顾与写在前面 首先,我们队在历经了千辛万苦之后,光荣得获得了  省三...... 队伍构成 物理*2 + 计算机*1 队伍分工  计算机-->受力分析  物理-->数值计算 总评:图 ...

  7. excel按季度分类汇总_Excel数据分析实战(1)--电商销售记录分析

    Excel是市面上最流行的办公软件之一,也是数据分析师入门最好的学习工具.因为其功能强大.操作简单,可以快速对数据进行清洗,建模,可视化,操作者不需要其他计算机基础也能快速上手.所以选择Excel进行 ...

  8. 闻康集团郑早明:医药电商4.0模式重构互联网+医药

    7月15日,由互联网医疗中国会主办的2016年"reMED重构医疗生态"高峰论坛在北京万达索菲特酒店举办.本次高峰论坛继续以"重构医疗生态"为研讨方向,&quo ...

  9. 第五届“传智杯”全国大学生计算机大赛(练习赛)前四题题解

    第五届"传智杯"全国大学生计算机大赛(练习赛) 练习赛题单链接:传智杯练习赛 仅有会做的前四题题解,还是太弱了( ^ M ^ !!) 第一题 链接:复读 思路: 就是哈希表记录下出 ...

最新文章

  1. SAP HUM 如何将2个HU合并并成一个?
  2. bigswitch公司
  3. 自学python能赚钱吗-学习Python多久能找到工作?老男孩Python开发培训
  4. python十三:函数
  5. js 拼接html 表格,js合并table单元格(拼table的时候并不知道具体几行几列)
  6. Vue中使用js-cookie插件实现登录时记住密码后存取到Cookie中
  7. Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGB
  8. python3基础知识_python3基础知识梳理
  9. 使用线性回归的预测建模
  10. efishell无法开机shell_开机出现efi shell卡住不动了解决方法全集
  11. 图解TCPIP-NAT
  12. Filter-Policy
  13. ThrealLocal原理讲解
  14. Failed to execute ‘btoa‘ on ‘Window‘: The string to be encoded contains characters outside of the La
  15. steam好友服务器当前处于离线状态,steam怎么修改在线状态-steam设置离线、想交易、隐身等状态的方法 - 河东软件园...
  16. pikachu暴力破解
  17. matlab滤波器滤除低频直流信号,对低频信号的滤波的方法
  18. TDK 小型冗余模拟 TMR 角度传感器。
  19. 时间过的好快呀,中国云计算,一转眼也十年啦
  20. 《管理沟通》培训有感--知易行难

热门文章

  1. 统一架构——优酷主客的标准化开发之路
  2. php使用consul,使用consul
  3. 【第十六篇】Camunda系列-动态表单
  4. 交友盲盒源码PHP附搭建部署教程
  5. 将本地项目上传至git仓库的步骤
  6. ubuntu关闭THP
  7. 时钟周期约束详细介绍
  8. Linux运行rpk文件,RPK 文件扩展名: 它是什么以及如何打开它?
  9. 局部定义,模式匹配在ocaml的用法
  10. java etl 开源框架_开源的ETL工具