numpy 删除所有为_用Numpy和Pandas工具分析销售数据

在数据分析领域,Python中用到最多的包是numpy,pandas和matplotlib,本文共分为三个部分:1.使用numpy和pandas分析一维数据 2.使用numpy和pandas分析二维数据 3.案例分析。

  • Numpy(Numerical Python):是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
  • Pandas:基于Numpy的一种数据分析工具,该工具是为解决数据分析任务而创建的,提供了一套名为数据框的数据结构,可以方便地对表结构数据进行分析。
  • matplotlib:是一个图形绘制库,专门用于数据分析结构的可视化。

*数据分析工具Numpy和Pandas大纲

f6ddbf8cc232353ec3ffdb19a773d0d4.png

一.一维数据分析

Numpy:Array

Pandas:Series

1)Numpy一维数据

Numpy一维数组与列表的区别:

a.统计功能:如:计算平均值的mean()方法,标准差std()方法;

b.向量化计算:可以向量相加和乘以标量;

c.Numpy数组中的每一个元素必须是同一种数据类型,而列表中的元素可以是不同类型。

1eb6e58694c5ff001635d99479d74157.png

66b5f3acd6f14cb697625c252d16dd4e.png

2)Pandas 一维数组:Series有索引

a.获取描述统计信息

c0b4745fbb006c951ee13930f3cf1437.png

b. # series.iloc[] :根据位置获取值。 series.loc[]:根据索引获取值。

1be8d23a19018707bea8b8351434ff23.png

330c634967994eb7c64753b1db9e0a2d.png

c.向量相加 和删除缺失值

0c2adb2147b25ed71216b0ecdf9a0f8d.png

二.二维数据分析
Numpy:Array

Pandas:DataFarme

1)Numpy

a.定义二维数组,查询数组

4699bb3727d191d3cac7e2f31ad76b75.png

b.切片的使用:切片的使用:[行进行切片,列进行切片],[start:stop:step,start:stop:step]

63503e2ba300b3867d2e3e35f82b0f1d.png

c.数轴参数:axis=1按行计算,axis=0按列计算

f987d4467209363fe9de21944fe30217.png

2.Pandas

a.数据框DataFrame: 行columns ; 列index

b.定义一个字典

78efedf5ffe26cbb42eb02f4c591bdc4.png

c.按照每列计算平均值

5c99b350e1fbddfc116c6389b8a4f04c.png

d.用iloc属性根据位置查询值

b3650a9af81ad0ebf6f3ef85b83ee349.png

e.用loc属性根据索引查询值

cc84a025fc1ee16e2c510374ebd96836.png

f.查询某几列

f4c8ffca8ccbbd6fddeee53e877afe81.png

g.切片功能:指定范围

773aac6841c7136d963e436d3d34d5ae.png

h.通过条件筛选符合要求的数据

055605272dc4611bd7b52e51995af1c4.png

i.数据集描述统计信息

3be1b8fd8c1483013b64046dd9ef3312.png
  • 查看某一列数据类型

bd1af58bd9699047d5d02439faa8039b.png
  • 查看有多少行多少列

e85aaa5162179f8905087f51a7d8435e.png
  • 获取每一列的描述统计

222d8cc05126b1c7b58d5ad9ac492912.png

三.案例

Numpy和Pandas 对朝阳医院药品销售数据进行分析,步骤如下:

8821c5ca6a616fe088fa762b1873a361.png

1.提出问题

和业务部门沟通后,要从销售数据中分析以下业务指标:

  • 月均消费次数;
  • 月均消费金额;
  • 客单价;
  • 消费趋势

2.理解数据

1)导入数据

7178e031c81b8bc8f7aba20f12c707df.png

2)查看数据类型

fb3df26f16a6925e058c0447917f1180.png

3)查看总的行列数

201f059db0f4a947f40f3609f39cd471.png

4)表中字段含义如下:

  • 购药时间:药品销售日期
  • 社保卡号:顾客购买药品使用的社保卡号码
  • 商品编码:售出药品的编号
  • 商品名称:售出药品的名称
  • 销售数量:售出药品的数量
  • 应收金额:药品应售金额
  • 实收金额: 药品实际售出金额(折扣,满减)

3.清洗数据

原始数据多而杂乱,或缺失,或异常,需要进行数据清洗,得到后续数据分析可用的数据。

1)选择子集

本案例需要所有数据,不需要选择子集。下面是展示选择子集的方法之一:切片访问

9bb8e4b0624491fef79545141546178e.png

2)列名重命名

统一列名的时间,这里将“购药时间”改为“销售时间”,用字典定义旧列名和新列名;用rename函数修改。

2bd80f43e4e07fbd54f67456c55774f7.png

3)缺失值处理

a. Python缺失值有3种:None,NA,NaN

  • Python内置的None值
  • 在pandas中,将缺失值表示为NA,表示不可用not available。
  • 对于数值数据,pandas使用浮点值NaN(Not a Number)

b.数据中含有缺失值,对后续计算会造成干扰,可以用空值填充或直接删除,此处用dropna()将数据框中缺失值删除。

0377685ea6a7aca7d477fa03a906f526.png

*how=any表示,给定的任一列中缺失值就删除

4.数据类型转换

a.在导入数据时已将所有数据设定为字符串类型,现在用astype()将销售数量、应收金额和实收金额三列数据类型改为浮点型。

80492759e782759bbed66a35b73d9465.png

b.自定义函数,将字符串转换为日期数据类型

b6626c523b041781f70cab72d7bfc170.png

aa2d340bc0e685c34839596655ac9a9e.png

9cc6ecdf4fdfe796d475e44c634c8b9d.png

5.数据排序

用sort_values()对数据进行排序

c5fba2f10446e8e547385826db806450.png

删除缺失值和根据销售时间排序后,索引名已被打乱,需重新命名索引名

aea124a9e39b819ebf42ea3c233fe2da.png

6.异常值处理

c6f2f2682e7c1fefe4b105b229dcac2a.png

如上图所示,我们发现销售数量的最小值为-10,因此可以将销售数量为负值的行删除。

146b880d0da414ba8e93896ada5bb3a3.png

4.构建模型

我们可根据业务问题来构建模型。

问题1: 月消费次数

月消费次数=总消费次数/月数。注:同一天内同一人的多次消费算为1次。

e963b511f36429b6ea49109c02536936.png

ab6d31a98eeb8893356c045851086e9e.png

05909a83a8b6261228932f8e9b89aebd.png

问题2:月均消费金额

月均消费金额=总消费金额(实收金额)/月份数。

0f8f2de3d8d6dedaf4a24304c784c42d.png

问题3:客单价

客单价=总消费金额/总消费次数。

5c8629aeea0cfd7dc3cb27b51a9f1ea2.png

问题4: 消费趋势

计算每月销售总金额

f408b7aa1c85c9e85e48c047c2c54036.png

0a2e5899f99b121cc9f88a82eaf4e6f5.png

导出数据做出销售趋势图如下:

9065690e756df06556c8f18ed736c55d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值