版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1第1章果缤纷水果店单品分析可运行代码fruits=[{"名称":"苹果","单价":12.5,"销量":80},{"名称":"香蕉","单价":5.8,"销量":150},{"名称":"葡萄","单价":22.0,"销量":60},]total=0foriteminfruits:revenue=item["单价"]*item["销量"]total+=revenueprint(f'{item["名称"]}:{revenue:.2f}元')print(f'今日总销售额:{total:.2f}元')结果与判读苹果1000.00元,香蕉870.00元,葡萄1320.00元;合计3190.00元。
第2章领航文具店数据清洗可运行代码importpandasaspdfromopenpyxl.stylesimportFont,PatternFill,Alignmentfromopenpyxl.utilsimportget_column_letter#步骤1:导入数据df=pd.read_excel("文具店库存.xlsx")#输出完整数据,检查是否正确导入print("导入的原始库存数据:")print(df)#步骤2:识别负值库存abnormal_data=df[df["库存数/件"]<0]print("\n负库存异常数据清单:")print(abnormal_data)#步骤3:修正异常值#库存数小于0时返回0,否则保持原值不变df["库存数/件"]=df["库存数/件"].apply(lambdax:0ifx<0elsex)print("\n修正后的库存数据:")print(df)#步骤4:导出并简单美化output_file="文具店库存清洗结果.xlsx"withpd.ExcelWriter(output_file,engine="openpyxl")aswriter:#写入清洗后的完整数据df.to_excel(writer,sheet_name="清洗后库存",index=False)#写入负库存异常清单,便于业务人员核查abnormal_data.to_excel(writer,sheet_name="负库存异常清单",index=False)#对两个工作表进行简单美化forsheet_namein["清洗后库存","负库存异常清单"]:worksheet=writer.sheets[sheet_name]#冻结首行worksheet.freeze_panes="A2"#添加自动筛选worksheet.auto_filter.ref=worksheet.dimensions#设置表头格式forcellinworksheet[1]:cell.font=Font(bold=True,color="FFFFFF")cell.fill=PatternFill(fill_type="solid",fgColor="4472C4")cell.alignment=Alignment(horizontal="center",vertical="center")#根据内容自动调整列宽forcolumn_cellsinworksheet.columns:max_length=max(len(str(cell.value))ifcell.valueisnotNoneelse0forcellincolumn_cells)column_letter=get_column_letter(column_cells[0].column)worksheet.column_dimensions[column_letter].width=(max_length+4)print(f"\n数据清洗完成,结果已保存为:{output_file}")结果与判读采用图2-7的示例数据时,识别6条负库存:P002-5、P004-10、P008-3、P014-7、P019-2、P026-4。修正后这六项为0;导出文件含清洗结果和原始异常两张表。
第3章宠物之家狗粮销售分析可运行代码importpandasaspdimportmatplotlib.pyplotasplt#1.构造3月份每日销量数据sales=[120,130,128,135,140,150,160,200,210,180,175,178,190,195,220,230,225,210,200,190,185,180,190,200,210,230,240,250,260,270,250]#生成2025年3月1日至3月31日的日期dates=pd.date_range(start="2025-03-01",periods=31)#将日期和销量组合成DataFramedf=pd.DataFrame({"日期":dates,"销量/包":sales})print("2025年3月狗粮销量数据:")print(df)#2.计算每日销量的环比增长率#pct_change()用于计算本日销量相对于前一日销量的变化比例#再乘以100,将结果转换为百分比df["日环比/%"]=df["销量/包"].pct_change()*100print("\n每日销量及日环比增长率:")print(df.to_string(index=False,formatters={"日环比/%":lambdax:f"{x:.2f}"}))#3.找出最高销量和局部销售高峰#如果某一天的销量同时高于前一天和后一天,#就将该日判断为一个局部销售高峰peak_mask=((df["销量/包"]>df["销量/包"].shift(1))&(df["销量/包"]>df["销量/包"].shift(-1)))peaks=df.loc[peak_mask,["日期","销量/包"]]#idxmax()返回销量最大值所在行的索引maximum=df.loc[df["销量/包"].idxmax()]print("\n本月最高销量:")print(maximum["日期"].date(),int(maximum["销量/包"]),"包")print("\n本月局部销售高峰:")for_,rowinpeaks.iterrows():print(row["日期"].date(),int(row["销量/包"]),"包")#4.比较周末和工作日的平均销量#weekday为0~4时表示周一至周五#weekday为5~6时表示周六和周日weekend_average=df.loc[df["日期"].dt.weekday>=5,"销量/包"].mean()weekday_average=df.loc[df["日期"].dt.weekday<5,"销量/包"].mean()print("\n周末日均销量:",round(weekend_average,2),"包")print("工作日日均销量:",round(weekday_average,2),"包")#5.绘制3月份日销量趋势折线图#设置中文字体,避免图表中的中文显示为方框plt.rcParams["font.sans-serif"]=["SimHei","MicrosoftYaHei"]#解决坐标轴负号不能正常显示的问题plt.rcParams["axes.unicode_minus"]=False#创建绘图区域plt.figure(figsize=(11,5))#绘制每日销量折线图plt.plot(df["日期"],df["销量/包"],marker="o",linewidth=2,label="每日销量")#使用红色散点标出局部销售高峰plt.scatter(peaks["日期"],peaks["销量/包"],color="red",s=70,label="局部销售高峰")#标注最高销量plt.annotate(f'最高销量:{int(maximum["销量/包"])}包',xy=(maximum["日期"],maximum["销量/包"]),xytext=(0,15),textcoords="offsetpoints",ha="center",color="red")#设置图表标题和坐标轴名称plt.title("2025年3月狗粮日销量趋势")plt.xlabel("日期")plt.ylabel("销量/包")#添加网格线和图例plt.grid(alpha=0.25)plt.legend()#自动调整日期标签的显示角度plt.gcf().autofmt_xdate()#自动调整图表边距plt.tight_layout()#直接在Spyder的“绘图plt.show()结果与判读最高销量为3月30日270包;严格局部高峰是3月2日130、3月9日210、3月16日230、3月30日270包。3月31日较前日回落。仅凭这31个销量点不能证明周末或促销造成峰值,需补齐活动日历、流量和订单数据。
第4章花语坊用户分析可运行代码importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt#步骤1:模拟生成500名用户的数据#设置随机种子,保证每次运行生成的数据相同rng=np.random.default_rng(20260922)#设置各年龄段的人数#数据格式为:最低年龄、最高年龄、用户人数age_ranges=[(18,25,145),(26,35,190),(36,45,110),(46,65,55)]#在每个年龄段内随机生成年龄ages=np.concatenate([egers(low=min_age,high=max_age+1,size=user_count)formin_age,max_age,user_countinage_ranges])#打乱年龄排列顺序rng.shuffle(ages)#构建用户数据表df=pd.DataFrame({"user_id":[f"U{i:03d}"foriinrange(1,501)],"age":ages,#使用泊松分布模拟用户历史订单数"order_count":rng.poisson(lam=2,size=500)})print("模拟用户数据前10行:")print(df.head(10))#步骤2:将用户划分为4个年龄段age_labels=["青年18-25岁","青壮年26-35岁","中年36-45岁","中老年46岁以上"]#使用pd.cut()按照年龄区间划分用户df["age_group"]=pd.cut(df["age"],bins=[17,25,35,45,float("inf")],labels=age_labels)#步骤3:计算各年龄段人数和占比summary=(df.groupby("age_group",observed=False).size().reindex(age_labels).rename("人数").to_frame())#计算各年龄段人数占总人数的百分比summary["占比/%"]=(summary["人数"]/len(df)*100).round(1)print("\n各年龄段用户人数及占比:")print(summary)#计算各年龄段用户的平均历史订单数average_orders=(df.groupby("age_group",observed=False)["order_count"].mean().round(2))print("\n各年龄段平均历史订单数:")print(average_orders)#步骤4:绘制用户年龄分布图#设置中文字体plt.rcParams["font.sans-serif"]=["SimHei","MicrosoftYaHei"]#解决负号显示问题plt.rcParams["axes.unicode_minus"]=False#创建一行两列的绘图区域fig,axs=plt.subplots(1,2,figsize=(11,4.5))#左图:用户年龄直方图axs[0].hist(df["age"],bins=range(18,68,5),color="skyblue",edgecolor="white")axs[0].set_title("用户年龄分布")axs[0].set_xlabel("年龄")axs[0].set_ylabel("人数")axs[0].grid(axis="y",alpha=0.25)#右图:各年龄段人数柱状图axs[1].bar(summary.index.astype(str),summary["人数"],color="steelblue")axs[1].set_title("各年龄段用户人数")axs[1].set_xlabel("年龄段")axs[1].set_ylabel("人数")axs[1].tick_params(axis="x",rotation=20)#在柱形上方显示人数forindex,valueinenumerate(summary["人数"]):axs[1].text(index,value+3,str(value),ha="center")#自动调整子图间距fig.tight_layout()#直接在Spyder的“绘图”窗口中显示plt.show()结果与判读模拟数据分布预设为145、190、110、55人,分别占29%、38%、22%、11%。26~35岁组最多是模拟时的预设,不能当作花语坊真实客群发现。可按年龄段测试七夕送礼文案与秋季日常订花主题,衡量点击、下单及利润,避免仅凭年龄推断消费偏好。
第5章烘焙小屋低销量商品与滞销品分析可运行代码importpandasaspd#步骤1:整理原始数据#8款商品的周销量与库存数据(商品ID、商品名称、周销量/个、库存/个)rows=[("D001","抹茶蛋糕",32,50),("D002","芝士蛋糕",15,20),("D003","曲奇饼干",90,18),("D004","蓝莓派",80,30),("D005","芒果慕斯",60,25),("D006","榴莲千层",40,15),("D007","红丝绒蛋糕",40,60),("D008","黑森林蛋糕",30,10),]#将元组列表转换为DataFrame,并指定列名df=pd.DataFrame(rows,columns=["商品ID","商品名称","周销量/个","库存/个"])print("【原始数据】烘焙小屋8款商品周销量与库存")print(df.to_string(index=False))print()#步骤2:基于业务规则标记滞销商品#业务规则:周销量低于100个即为滞销品df["滞销标记"]=df["周销量/个"]<100print("【滞销标记】周销量<100个→标记为滞销")print(df[["商品ID","商品名称","周销量/个","滞销标记"]].to_string(index=False))print()#步骤3:计算库存风险指数#库存风险指数=库存/周销量,数值越大说明库存积压越严重、处理优先级越高#先将周销量为0的位置替换为NaN,避免除零错误df["库存风险/周"]=df["库存/个"].div(df["周销量/个"].replace(0,float("nan")))#特殊情况:周销量为0且仍有库存→风险指数记为无穷大(最紧急)df.loc[df["周销量/个"].eq(0)&df["库存/个"].gt(0),"库存风险/周"]=float("inf")print("【库存风险指数】库存÷周销量(数值越大越紧急)")print(df[["商品ID","商品名称","周销量/个","库存/个","库存风险/周"]].to_string(index=False,formatters={"库存风险/周":lambdav:f"{v:.3f}"}))print()#步骤4:筛选滞销商品并按风险从高到低排序#只保留滞销标记为True的商品,并按库存风险指数降序排列priority=df[df["滞销标记"]].sort_values("库存风险/周",ascending=False)print("【滞销处理优先级清单】按库存风险从高到低排列")print(priority.to_string(index=False,formatters={"库存风险/周":lambdav:f"{v:.3f}"}))print()#步骤5:输出结论print("【分析结论】")top=priority.iloc[0]print(f"最优先处理:{top['商品名称']}({top['商品ID']})")print(f"周销量仅{top['周销量/个']}个,库存{top['库存/个']}个,")print(f"库存风险指数高达{top['库存风险/周']:.3f},建议立即促销或打折清仓。")print(f"共筛选出{len(priority)}款滞销商品,建议按上述优先级依次处理。")结果与判读风险排序:D0011.563周、D0071.500周、D0021.333周、D0050.417周、D006与D004各0.375周、D0080.333周、D0030.200周。优先复核D001和D007的生产量及保质期;可小批量减产、临期组合促销。生鲜保质期不足一周时,该指数不能替代批次效期预警。
第6章鲜奶站库存管理可运行代码importmathimportpandasaspdsales=[120,135,128,142,138,145,150,132,128,140,125,130,138,142,135,148,152,136,130,128,132,140,145,150,142,138,135,130,128,130]s=pd.Series(sales,dtype="float64")lead_days,z,current=3,1.65,500mean,std=s.mean(),s.std(ddof=1)safety=math.ceil(z*std*math.sqrt(lead_days))threshold=math.ceil(mean*lead_days+safety)print(f"日均销量={mean:.2f}瓶;样本标准差={std:.2f}瓶")print(f"安全库存={safety}瓶;预警阈值={threshold}瓶;当前库存={current}瓶")ifcurrent<threshold:print(f"触发补货预警;补至阈值至少还需{threshold-current}瓶")else:print("当前不触发预警")print(f"库存覆盖天数约={current/mean:.2f}天(忽略新订货到达)")结果与判读日均136.40瓶,样本标准差8.12瓶,安全库存24瓶,预警阈值434瓶;当前库存500瓶,不触发预警。鲜奶保质期仅7天,若补货需额外检查各批次剩余效期、在途量与未来需求;仅以补到阈值作为补货量不能保证先进先出或避免报废。
第7章书虫屋数据漏斗分析可运行代码importpandasaspdimportmatplotlib.pyplotasplt#1、定义书虫屋漏斗数据#转化路径:浏览→加购→下单→支付stages=["浏览","加购","下单","支付"]user_counts=[12000,3600,2400,1800]#创建pandas数据表df=pd.DataFrame({"环节":stages,"用户数":user_counts})#2、计算漏斗指标:转化率、流失率#相邻环节转化率=当前环节人数/上一环节人数*100%df["相邻环节转化率/%"]=(df["用户数"]/df["用户数"].shift(1)*100).round(2)#相邻环节流失率=100%-相邻环节转化率df["相邻环节流失率/%"]=(100-df["相邻环节转化率/%"]).round(2)#相对浏览总转化率=当前环节人数/初始浏览用户数*100%df["相对浏览转化率/%"]=(df["用户数"]/user_counts[0]*100).round(2)#3、控制台输出完整分析报告print("各环节用户数、转化率与流失率明细表:")print(df.to_string(index=False))#分别计算每一步流失人数和流失率loss_browse2cart=user_counts[0]-user_counts[1]rate_browse2cart=(1-user_counts[1]/user_counts[0])*100loss_cart2order=user_counts[1]-user_counts[2]rate_cart2order=(1-user_counts[2]/user_counts[1])*100loss_order2pay=user_counts[2]-user_counts[3]rate_order2pay=(1-user_counts[3]/user_counts[2])*100print(f"浏览→加购:流失{loss_browse2cart}人,流失率{rate_browse2cart:.2f}%")print(f"加购→下单:流失{loss_cart2order}人,流失率{rate_cart2order:.2f}%")print(f"下单→支付:流失{loss_order2pay}人,流失率{rate_order2pay:.2f}%")print("结论:【浏览→加购】是最大流失环节,是本次优化的重点。")#4、绘制漏斗可视化图表#配置中文字体,解决中文乱码plt.rcParams["font.sans-serif"]=["SimHei","MicrosoftYaHei"]plt.rcParams['axes.unicode_minus']=Falsefig,ax=plt.subplots(figsize=(9,4.5))#反转列表,让浏览在最上方,支付在最下方,形成漏斗效果ax.barh(stages[::-1],user_counts[::-1],color=["#A6C0CF","#89AABD","#6E95AB","#557C9A"])#在每个条形上标注人数forindex,numinenumerate(user_counts[::-1]):ax.text(num+200,index,f"{num:,}人",va="center")ax.set_xlim(0,14000)ax.set_xlabel("用户数量/人")ax.set_title("书虫屋用户购物转化漏斗图")ax.grid(axis="x",alpha=0.3)plt.show()结果与判读浏览→加购30%转化、70%流失(8400人);加购→下单66.67%转化、33.33%流失;下单→支付75%转化、25%流失;浏览→支付整体15%。可检验价格与运费展示、图书版本信息、库存/到货时效等假设。优先对详情页明确版本、预计到货和运费的改版做用户级A/B测试,以浏览→加购为主指标,同时监测支付率与毛利。
第8章奶茶研究室竞品监控可运行代码importpandasaspdimportmatplotlib.pyplotaspltrows=[("A品牌","经
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 过程控制系统点检员岗前实操知识能力考核试卷含答案
- 肥皂制造工安全知识竞赛模拟考核试卷含答案
- 拖拉机整机装试工岗前理论技能考核试卷含答案
- 工业车辆装配调试工安全生产意识评优考核试卷含答案
- 地毯纱架工安全知识宣贯能力考核试卷含答案
- 灌区管理工岗中测试考核试卷含答案
- 野生植物培植工岗前协调考核试卷含答案
- 乳品发酵工岗前创新思维考核试卷含答案
- 停车管理员核心管理知识考核试卷含答案
- 智能交通设施维护管理项目分析方案
- 2026年秋人教版一年级数学上册第一单元测试卷可打印
- 2026年全国法律硕士(法学)联考真题及答案
- 招聘84人!2026年青海省检察机关面向社会公开招聘聘用制书记员考试备考试题及答案解析
- 2026慢性病患者老人秋冬防病保健专题培训课件
- 北京市城市协管员笔试题库及答案详解
- 2026年湖南水利水电职业技术学院单招职业技能考试题库附答案
- SEMI F63-24 中文版 半导体工艺用超纯水标准指南(2024版)
- 2026-2027学年浙教版数学九上 第3章 圆的基本性质 单元综合知识梳理卷
- 新教科版三上科学学科教学计划-2026秋
- 重症营养支持中国指南(2026版)
- 《朝花夕拾》名著导读
评论
0/150
提交评论