超市销售数据分析python_python实战案例:超市营业额数据分析

本文通过一个实战案例,使用Python进行超市营业额数据分析,包括读取数据、处理缺失值、数据清洗、交易额调整,以及各种数据操作如删除重复数据、查看每日交易总额、修改工号、按员工拆分数据、日期筛选、计算交易额增幅、绘制图表等,全面锻炼和巩固Python数据处理技能。
摘要由CSDN通过智能技术生成

实战是学习的最好途径,效率最高,本文不是很长,通过小小的练习,让大家综合运用基础知识,加深印象巩固记忆。

一、读入数据,了解数据

本数据随机生成的假数据,读者可以自己造,也可以通过下方链接下载,或者后台回复“超市营业额”获取:

提取码:vedz

读入数据

import random

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

# 生成营业额400-4000,生成400个随机数

# np.random.randint(400,4000,400)

df=pd.read_excel("超市营业额数据.xlsx")

df.head(10)

了解数据

通过.info() 和 .describe()方法分别查看数据大概是什么样的

df.info()

---------------------------------------------------------------------

out:

RangeIndex: 256 entries, 0 to 255

Data columns (total 6 columns):

工号 256 non-null int64

姓名 256 non-null object

日期 256 non-null datetime64[ns]

时段 256 non-null object

交易额 242 non-null float64

柜台 256 non-null object

dtypes: datetime64[ns](1), float64(1), int64(1), object(3)

memory usage: 12.1+ KB

数据总共256个观测,6个变量/特征,工号是整型,日期是日期型,交易额是浮点型,其他是字符型数据。“交易额”有缺失数据。

#将工号的数据类型由原来是整型调整为字符型df['工号']=df["工号"].apply(lambda x:str(x))

df.info()

---------------------------------------------------------------------

out:

RangeIndex: 256 entries, 0 to 255

Data columns (total 6 columns):

工号 256 non-null object

姓名 256 non-null object

日期 256 non-null datetime64[ns]

时段 256 non-null object

交易额 242 non-null float64

柜台 256 non-null object

dtypes: datetime64[ns](1), float64(1), object(4)

memory usage: 12.1+ KB

从统计量角度,可以看到数值型的变量(交易额)的最大值、最小值、均值、四分位值,标准差的五值分布。均值是2123.88,最大为3988,最小是404,中位数是2239.5。

df.describe()

---------------------------------------------------------------------

out:

交易额

count 242.000000

mean 2123.884298

std 1033.596041

min 404.000000

25% 1211.500000

50% 2239.500000

75% 3023.250000

max 3988.000000

题目1:

删除重复数据,把缺失的交易额使用每个员工自己所有交易额的中值进行填充,把小于500的交易额统一改为500,大于3000的交易额改为3000,修改后的数据保存为文件“数据调整结果.xlsx”,文件结构与“超市营业额数据.xlsx”相同。

# 查看重复数据

df[df.duplicated()]

# 删除重复数据

df.drop_duplicates()

重复的数据如下:

for i in df[df["交易额"].isnull()].index:#循环遍历交易额有缺失值的索引

#取到交易额有缺失值的索引,根据索引找到人名,用这些人对应的交易额中位数填充

df.loc[i,"交易额"]=round(df.loc[df.姓名==df.loc[i,"姓名"],"交易额"].median())

--------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值