数据分析实战 - 超市销售数据分析,csv输入输出(附带样本集)

本文通过Python代码演示了如何处理收银台销售数据,包括按商品大类、中类和促销状态分组计算销售额,将销售日期转化为序列以便统计天数和周数,并分析商品一周销售及顾客月消费情况。这些步骤为数据可视化和深入的销售分析奠定了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        导语:给你这样一份数据,来自收银台记账数据,你能提取什么信息?有多大价值?找出这样的信息需要多久时间?

如果使用自动化工具,几十行python代码,能做什么?

首先,导入数据集:

import pandas as pd
import numpy as np

flies = 'input.csv'
data=pd.read_csv(flies,encoding="gbk")

对大类分组,计算销售金额:

a=[]  #创建空list来保存数据
b=[]

for name, group in data.groupby(['大类名称']):
  a.append(name)
  b.append((group['销售金额'].sum()))
print(a)  #验证大类名称
data_21={'名称':a,'金额':b}  #创建一个数据集来保存
data_21=pd.DataFrame(data_21)
data_21.to_csv('putout1.csv')  #输出为csv

对中类别,是否促销分组,计算销售金额:

a=[]
b=[]

for name, group in data.groupby(['中类名称', '是否促销']):  #对两个列表进行分组
    a.append(name)
    b.append((group['销售金额'].sum()))
print(a)
print(b)
data_22={'名称':a,'金额':b}
data_22=pd.DataFrame(data_22)
data_22.to_csv('putout2.csv')

销售日期转化为序列,便于计数:

b=data['销售日期']
print(b.count())

b1=1
s=1
tianshu=[]

for i in range(0,b.count()-1):  #如果两个序列前后不一样则认为是新的一天
    if b[i]==b[i+1]:
       tianshu.append(b1)
    else:
        b1=b1+1
    tianshu.append(b1)
print(tianshu)
data['天数']=tianshu  #将新生成的天数序列加入data数据中

生成周序列:

zhoushu=[]
zhou=1
for i in data['天数']:  #每隔7天为新的一周数
  if i <= 7*zhou:
    zhoushu.append(zhou)
  else:
    zhou=zhou+1
    zhoushu.append(zhou)
# print(zhoushu)
data['周数']=zhoushu

统计商品一周销售金额:

a=[]
b=[]
for name, group in data.groupby(['商品类型', '周数']):
  a.append(name)
  b.append((group['销售金额'].sum()))
print(a)
print(b)

统计顾客每月销售额,消费天数:

jine=[]
guke=[]

for name, group in data.groupby(['顾客编号', '销售月份']):#月份也可以用2015-01来表示
  guke.append(name)
  jine.append((group['销售金额'].sum()))
  print(list(name))
  print('本月消费天数为:',len((set((group['天数']).tolist()))))
  print('销售金额为:',(group['销售金额'].sum()))

看看结果:

 有了数据,就可以很轻松的绘制各类图表,实现分析结果的可视化。

 自己动手试一下吧,样本集:

链接:https://pan.baidu.com/s/1gdQGaqq_g-BB1bkGKZtaaA?pwd=4is5 
提取码:4is5 

补充tip:

groupby()分组函数

       任何分组(groupby)操作都涉及原始对象的以下操作之一:

  • 分割对象
  • 应用一个函数
  • 结合的结果

        在许多情况下,我们将数据分成多个集合,并在每个子集上应用一些函数。在应用函数中,可以执行以下操作 :

  • 聚合  计算汇总统计
  • 转换  执行一些特定于组的操作
  • 过滤  在某些情况下丢弃数据
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊昊该干饭了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值