python 数据分析 实际案例_python实战案例:超市营业额数据分析

78a691ca6a12f0110ec755fe1c99ed9c.png

f08bdfac490d77c6ec79173f7a0b3348.png

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

一、读入数据,了解数据

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

链接:https://pan.baidu.com/s/1OIOwBdBZydgRf5U72Gh_vg

提取码: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:
<class 'pandas.core.frame.DataFrame'>
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:
<class 'pandas.core.frame.DataFrame'>
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,"姓名&#
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值