26个数据分析案例——第三站:基于python的药店销售数据分析

目录

26个数据分析案例——第三站:基于python的药店销售数据分析

实验环境

  • Python: Python 3.x;

  • jupyter

数据说明

当前数据为某医院销售记录,用于记录用户购买药品的相关信息。该数据集包含7个字段,分别是:
• 购药时间。
• 社保卡号。
• 商品编码。
• 商品名称。
• 销售数量。
• 应收金额。
• 实收金额。

资料包

链接:https://pan.baidu.com/s/1KdikbuBaTBGDwgZyPgVv4g
提取码:e46q

实验步骤

第一步:加载数据并查看数据详情

1、导入数据:需要用到Python中的xlrd包,代码如下所示。
#导入数据分析包
import pandas as pd
'''
路径中最好不要有中文,或者特殊符号啥的,不然路径会提示错误找不到。
最后将文件放到一个简单的英文路径下
'''
#读取CSV数据,统一先按照字符串读入,之后转换
salesDf=pd.read_csv('data.csv',dtype={
   '社保卡号':str,'商品编码':str})
'''
查看数据基本信息
'''
#打印出前5行,以确保数据运行正常
salesDf.head()

结果如图所示。
在这里插入图片描述

2、查看数据类型,代码如下所示。
#查看每一列的数据类型
salesDf.dtypes

在这里插入图片描述

第二步:数据清洗

1、选择子集:目的是选择需要分析的列,方法为切片法(loc),代码如下所示。
subset=salesDf.loc[0:3,'购药时间':'商品名称']
subset

结果如图所示。
在这里插入图片描述

2、列名重命名:把’购药时间’改为’销售时间’,代码如下所示。
#列名和新列名对应关系
colNameDict={
   '购药时间':'销售时间'}
'''
inplace=False,数据框本身不会变,而会创建一个改动后新的数据框,默认的inplace是False
inplace=True,数据框本身会改动
'''
salesDf.rename(columns =colNameDict,inplace=True)
salesDf.head()

结果如图所示。
在这里插入图片描述

3、缺失数据处理,用dropna 法处理缺失值,处理前数据大小,代码如下所示。
print('删除缺失值前大小',salesDf.shape)

结果如图所示。
在这里插入图片描述

4、处理后的数据大小,代码如下所示。
#删除列(销售时间,社保卡号)中为空的行
#how='any'在给定的任何一列中有缺失值就删除
salesDf=salesDf.dropna(subset=['销售时间','社保卡号'],how='any')
print('删除缺失后大小',salesDf.shape)

结果如图所示。
在这里插入图片描述

5、数据类型转换:本文数据都是以字符串类型导入的,我们需要将字符串转换为我们需要的数据类型,字符串转换为数值(浮点型),代码如下所示。
'''
运行后,会报警告SettingWithCopyWarning一般信息有两列,一类是Warning警告信息,一类是Error错误信息。
警告的信息不用管,我们只关注错误类型的信息
'''
#字符串转换为数值(浮点型)
salesDf[
  • 24
    点赞
  • 364
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值