logo资料库

python超市销售数据分析.pdf

第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
资料共30页,剩余部分请下载后查看
目录
一、超市销售背景及销售数据分析目的
二、数据预处理与统计
2.1数据预处理
2.1.1加载和查看数据
2.1.2缺失值处理
2.1.3数据类型规范化处理
2.1.4重复值处理
2.2数据统计
2.2.2统计各中类商品的促销销售金额和非促销销售金额
2.2.3统计生鲜类产品和一般产品的每周销售金额
2.2.4统计各顾客的月消费额及总消费天数
三、数据分析与可视化
3.1生鲜类商品和一般商品的日销售金额分析
3.2各大类商品月销售金额分析
3.3促销商品和非促销商品的销售金额分析
四、用户画像与促销策略
4.1用户画像
4.2各大类商品的销售情况及规律
4.3分析促销对商品销售的影响
LZH 基于 python 的超市销售数据分析 目录 一、超市销售背景及销售数据分析目的.................................................1 二、数据预处理与统计............................................................................. 2 2.1 数据预处理..................................................................................... 2 2.1.1 加载和查看数据....................................................................2 2.1.2 缺失值处理............................................................................ 2 2.1.3 数据类型规范化处理............................................................3 2.1.4 重复值处理............................................................................ 4 2.2 数据统计....................................................................................... 5 2.2.2 统计各中类商品的促销销售金额和非促销销售金额....... 6 2.2.3 统计生鲜类产品和一般产品的每周销售金额................... 7 2.2.4 统计各顾客的月消费额及总消费天数............................... 9 三、 数据分析与可视化.........................................................................13 3.1 生鲜类商品和一般商品的日销售金额分析.............................. 13 3.2 各大类商品月销售金额分析.......................................................16 3.3 促销商品和非促销商品的销售金额分析...................................19 四、 用户画像与促销策略.....................................................................22 4. 1 用户画像...................................................................................... 22 4.2 各大类商品的销售情况及规律...................................................23 4.3 分析促销对商品销售的影响.......................................................25 I
LZH 基于 python 的超市销售数据分析 一、超市销售背景及销售数据分析目的 近些年来,由于网络的快速普及,网购的兴起以及新零售行业的 改革与发展,消费者在购买商品时有了更多的对比和选择,使得传统 的超市行业面临着巨大的冲击和挑战,这也迫使超市必须改善自己的 经营理念,以及自身定位的清晰化。 超市在经营和管理中会产生大量的数据,对这些数据进行分析,超市 可以了解自身的优点与缺点,或许这些数据正是超市得以继续对抗社 会种种变化的关键。 1
LZH 基于 python 的超市销售数据分析 二、数据预处理与统计 2.1 数据预处理 2.1.1 加载和查看数据 在进行数据的处理之前,一般步骤都会先对数据进行大致上的观 察,了解数据的结构和特征。pandas 提供了大量能速便捷地处理数 据的函数和方法,它是使 Python 成为强大而高效的数据分析环境的 重要因素之一。这里使用到了 pandas 的 read_csv 函数来读取数据源。 #导入数据处理中会用到的库 import numpy as np import pandas as pd #读取数据源 data=pd.read_csv('../附件.csv',encoding='gbk') #这里使用了 gbk 编码对数 据源进行编译 导入进来数据之后,用 print 函数打印出数据源后方可查看到数 据。 print(data)#查看数据源 数据预览: 2.1.2 缺失值处理 在对数据进行处理和分析之前,手中的数据一般都是不太“干净” 2
LZH 基于 python 的超市销售数据分析 的,这时就需要对其进行数据的清洗工作,而缺失值往往是比较容易 被发现且比较重要的部分。 #使用 for 循环遍历出现缺失值的列 for column in list(data.columns[data.isnull().sum()>0]): #输出存在缺失值的列 print(column) print(data[data[column].isnull()]) #输出存在缺失值的行 数据预览: 100 运行代码后可以看到,销售数量这一列存在缺失值,并且可以知 道总共有两条记录的销售数量存在缺失值。进一步观察这两条记录发 现,其是否促销列均存在异常值(是否促销列的值只有是或否两个, 9.9 明显不满足要求)的情况。 删除存在缺失值的行记录。 #删除存在缺失值的行,上面通过对存在缺失值的行的分析,对比填充缺失值而 言将其整行数据删掉更佳合理 data.dropna(axis=0, how='any', inplace=True) 2.1.3 数据类型规范化处理 在大致观察数据源的时候,注意到了销售日期列的数值非正常日 期格式,下面进一步确定它的数据格式。 #检验销售日期的数据类型 for i in data['销售日期']: print(type(i)) 数据预览: 3
LZH 基于 python 的超市销售数据分析 从代码的运行结果可以得知销售日期列的数据为 int 格式,为了 方便后续的数据分析工作需要对其转换为日期格式。 #销售日期列的数据类型是 int 类型,将销售日期列的数据转换为 datetime 格式, 后面的数据处理会顺畅的多 data['销售日期']=data['销售日期'].astype('str')#转换成 datetime 格式 前,需要先把 int 格式转换为 str 格式 data['销售日期'] = pd.to_datetime(data['销售日期 '],format='%Y%m%d',errors='coerce') 再次验证销售日期列的数据类型后输出的结果: 销售日期列的数据类型已经由 int 格式转换为可进行多种日期 函数操作的日期格式。 2.1.4 重复值处理 重复值去重是数据清洗工作中经常碰到的问题,重复和多余的数 据会影响到数据分析的结果,但不是所有的重复数据就一定要去重。 本次处理的数据表中,经过观察可以得知,其各列的值都不能显示出 数据的唯一性。 4
LZH 基于 python 的超市销售数据分析 原数据中没有具体的订单编号等信息来求证数据是否是重复,因 为一个顾客可以在同一天之内买同一件商品,而这两条销售记录它所 有列的值都是相同的,但并不能规定这两条记录就是重复的,他们都 有自己存在的意义,而不是错误导致的重复。 2.2 数据统计 2.2.1 统计各大类商品的销售金额 源数据: 现在需要统计每个大类商品的销售金额,所以只需要用到表中的 大类名称和销售金额,其他列的数据不需要使用到。 #将原数据按‘大类名称’列进行分组且只列出‘销售金额’列的数据,然后存入新的表 max_categoriesx=data.groupby(by='大类名称').sum()['销售金额 '].sort_values(ascending=False) print (max_categoriesx) 数据预览: 5
LZH 基于 python 的超市销售数据分析 统计完数据之后,再把刚刚新建的 DataFrame 格式的表保存到外 部文件。DataFrame 格式的表自带转换成 csv 文件的函数,可以快速 的进行数据的存储。 #将表格保存成 csv 文件 max_categoriesx.to_csv("task1_2.csv", index=True) 2.2.2 统计各中类商品的促销销售金额和非促销销售金额 原数据: 现在需要统计每个中类商品的促销销售金额和非促销销售金额, 才能得知两种销售方式之间的对比情况。 #分别从原数据中筛选中促销和非促销的销售记录并用‘中类名称’列进行分组,且只使 用‘销售金额’列的数据,然后存入新建的两个表中 middle_categoriesx_true=data[data['是否促销']=='是'].groupby('中类名称 ')['销售金额'].sum() middle_categoriesx_false=data[data['是否促销']=='否'].groupby('中类名 称')['销售金额'].sum() # print(middle_categoriesx_true) # print(middle_categoriesx_false) 输出这两个刚创建的表: 6
分享到:
收藏