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

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

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

一.一维数据分析

Numpy:Array

Pandas:Series

1)Numpy一维数据

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

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

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

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

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

a.获取描述统计信息

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

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

二.二维数据分析
Numpy:Array

Pandas:DataFarme

1)Numpy

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

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

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

2.Pandas

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

b.定义一个字典

c.按照每列计算平均值

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

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

f.查询某几列

g.切片功能:指定范围

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

i.数据集描述统计信息

  • 查看某一列数据类型
  • 查看有多少行多少列
  • 获取每一列的描述统计

三.案例

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

1.提出问题

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

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

2.理解数据

1)导入数据

2)查看数据类型

3)查看总的行列数

4)表中字段含义如下:

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

3.清洗数据

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

1)选择子集

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

2)列名重命名

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

3)缺失值处理

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

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

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

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

4.数据类型转换

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

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

5.数据排序

用sort_values()对数据进行排序

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

6.异常值处理

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

4.构建模型

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

问题1: 月消费次数

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

问题2:月均消费金额

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

问题3:客单价

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

问题4: 消费趋势

计算每月销售总金额

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

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

  1. python中numpy matplotlib绘图教程_利用numpy+matplotlib绘图的基本操作教程

    简述 Matplotlib是一个基于python的2D画图库,能够用python脚本方便的画出折线图,直方图,功率谱图,散点图等常用图表,而且语法简单.具体介绍见matplot官网. Numpy(Nu ...

  2. python删除负数负号_在numpy中将负数舍入为零时,如何消除多余的负号?

    在-0.和+0.之间存在的问题是浮动应该如何工作的规范(IEEE754)的一部分.在某些情况下,人们需要这种区别.例如,请参见在the docs for ^{}中链接到的文档. 值得注意的是,两个0应 ...

  3. 两个numpy取相同值_闲谈Numpy的切片规则

    我想说在学numpy库的时候切片真的让我有点痛苦的,逗号分号括号数字交织在一起刚开始看的我简直脑袋要爆炸,不过后来静下心来仔细看了看,发现其实也米有这么复杂,毕竟基于python的numpy库也是遵循 ...

  4. numpy pytorch 接口对应_用树莓派4b构建深度学习应用(四)PyTorch篇

    前言 上回我们安装了OpenCV 4.4,相信对源码编译库文件有了一定的了解,这篇我们进一步在树莓派上编译并安装 Pytorch 的最新版本. PyTorch 1.6 的新特性 PyTorch 1.6 ...

  5. python数组和函数的区别_真假美猴王-Numpy数据与Python数组的区别与联系!

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  6. python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系

    Numpy,是python中的一个矩阵计算包,功能类似matlab的矩阵计算.Numpy的诞生弥补了下面提到的两项的不足,numpy提供了两种基本的对象:ndarray(N-dimensional a ...

  7. python 函数作用于矩阵_图解NumPy:常用函数的内在机制

    原标题:图解NumPy:常用函数的内在机制 来源: 机器之心 支持大量多维数组和矩阵运算的 NumPy 软件库是许多机器学习开发者和研究者的必备工具,本文将通过直观易懂的图示解析常用的 NumPy 功 ...

  8. python引用numpy出错_引用numpy出错详解及解决方法

    numpy出错 解决方案 Problem: how to import numpy in subdirectory? Import error of numpy within subfolder. 错 ...

  9. numpy向量转换为矩阵_干掉公式——numpy 就该这么学

    机器学习和数据分析变得越来越重要,但在学习和实践过程中,常常因为不知道怎么用程序实现各种数学公式而感到苦恼,今天我们从数学公式的角度上了解下,用 python 实现的方式方法. 友情提示:不要被公式吓 ...

最新文章

  1. yum安装etcd集群
  2. SSO 认证机制对比
  3. 成功解决WARNING: You do not appear to have an NVIDIA GPU supported by the 430.34 NVIDIA Linux graph
  4. 【最长公共前缀】算法优化笔记
  5. 通过腾讯地图服务获取行政区划信息
  6. php mysql登陆页面完整代码_求助:PHP实现登陆注册的代码是什么啊(主要是数据库那块)?...
  7. QT 线程池 + TCP 小试(三)实现最终功能
  8. oracle profile为何被修改了,【图片】快被oracle玩死了,谁能告诉我为啥插入条数不同结果差别这么大!【java吧】_百度贴吧...
  9. mxnet系列 安装
  10. sublime php code sniffer,mac下sublime text3的php错误提示插件php code sniffer安装后,无法显示php错误...
  11. VSPE虚拟串口关机蓝屏(BSOD)的解决办法
  12. 小楼一夜听春雨,天下谁人不识君?
  13. Matlab在线运行网站
  14. CDN选择合适的回源策略很重要
  15. mysql netbeans_使用Netbeans操作MySQL数据库
  16. 前端开发工程师需要的技能
  17. Day101.MyBatisPlus(MP):自动填充、乐观锁、分页、逻辑删除、Wrapper条件构造器
  18. android room 分页,Android官方ORM数据库Room技术解决方案简介(一)
  19. Find the maximum and minimum value in tensor array
  20. APISpace 通知短信API

热门文章

  1. 飞鸽传书为我们提供了方便的聊天工具
  2. BAT网页10年巨变,背后的前端技术你都知道吗?
  3. java class 文件分析_大概优秀的java程序员都要会分析class文件吧
  4. oracle宣传视频下载,1300首 Audiomachine 背景音乐电影宣传预告片配乐合辑(23集)...
  5. h5点击后字体加粗出现下边框_人力资源管理论文格式(字体+版式+打印)
  6. 属于程序员的等级,看看你是哪个级别?
  7. protobuf数据类型_protobuf【1】
  8. PyPDF2 | 利用 Python 实现 PDF 分割
  9. 部分植物基因组数据库汇总
  10. Invisor for Mac(媒体文件检查工具)v3.14免激活版