2019年“泰迪杯”数据分析职业技能大赛A题 超市销售数据分析

代码,数据,题目:
GitHub:https://github.com/Fuyizhan/DataAnalysis_tipdm

一、 背景

近年来,随着新零售业的快速发展,消费者购买商品时有了更多的对比和选择,导致超市行业的竞争日益激烈,利润空间不断压缩。超市的经营管理产生了大量数据,对这些数据进行分析,可以提升超市的竞争力,为超市的运营及经营策略调整提供重要依据。

二、 目标

  1. 对销售数据进行统计分析,并作可视化展示。
  2. 分析顾客的消费行为。
  3. 研究促销对销售的影响。

三、 任务

附件是某超市 2015 年 1 月 1 日至 4 月 30 的经营数据,请根据附件编程完成以下任务:

任务 1 数据预处理与统计

任务 1.1

对数据作必要的预处理,在报告中列出处理步骤,将处理后的结果保存为“task1_1.csv”

预处理思路: 去重复 填空值 日期规范化  删除异常值
数据读取
import pandas as pd
data_csv = pd.read_csv(r"D:\googledownload\附件.csv", encoding='gbk')  
# r 是防止反斜杠转义的    gbk--简体中文
数据去重
data_csv.drop_duplicates(inplace=True)
去除空值
data_csv = data_csv.dropna(how='any')
# how='any' 即所处行有任意一值为空值,则删除此行
# how='all' 即所处行所有值为空值,则删除此行
日期规范化
data_csv['销售日期'] = pd.to_datetime(data_csv['销售日期'], format='%Y%m%d', errors='coerce')
data_csv = data_csv.dropna(how='any')
# errors='coerce' 即任何不能转化成数字的都被NaN值代替
# 再把不能转化为所设规范格式的数据行给删掉
删除异常值
data_csv.drop('销售月份', axis=1, inplace=True)
# 销售日期中包含销售月份,所以删除销售月份

print('删除异常值之前:', data_csv.shape)
data_csv = data_csv[(data_csv['销售数量'] > 0) & (data_csv['销售金额'] > 0)]
print('删除异常值之后:', data_csv.shape)
# 删除销售数量和销售金额小于0的异常值
数据存储
data_csv.to_csv(r'C:\PycharmProjects\project1\超市销售数据分析\result\task1_1.csv', index=False, encoding='gbk')
#将data存储为task1_1.csv

任务 1.2

统计每个大类商品的销售金额,将结果保存为“task1_2.csv”。

思路:以大类名称为组区别,进行销售金额的求和
 读取预处理后的数据
data_csv = pd.read_csv(r'C:\PycharmProjects\project1\超市销售数据分析\result\task1_1.csv', encoding='gbk')
 分组求和
data_main_category = data_csv.groupby(['大类名称']).agg({'销售金额': 'sum'}).reset_index()
data_main_category.rename(columns={'销售金额': '销售金额总和'}, inplace=True) # 重命名

  数据存储
data_main_category.to_csv(r'C:\PycharmProjects\project1\超市销售数据分析\result\task1_2.csv', index=False, encoding='gbk')
#将data存储为task1_2.csv
任务 1.3

统计每个中类商品的促销销售金额和非促销销售金额,将结果保存为“task1_3.csv

 思路:先以是否促销为区别 获取每个商品的销售情况
            再以中类名称为组区别,进行销售金额的求和

读取数据
data_csv = pd.read_csv(r'C:\PycharmProjects\project1\超市销售数据分析\result\task1_1.csv', encoding='gbk')
促销
data_csv_yes = data_csv[data_csv['是否促销'] == '是'].groupby('中类名称').agg({'销售金额': 'sum'})
data_csv_yes.rename(columns={'销售金额': '促销销售金额总和'}, inplace=True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值