用Python进行数据分析,需要用到数据分析相关的包,如本文中用到的pandas和numpy包。

本文目录:

  1. 用python分析一维数据
  2. 用python分析二维数据
  3. 案例:销售数据分析

一、一维数据分析

在numpy和pandas这两个包中,都有表示一维数据的特殊数据结构。

在pandas中,一维数据结构是Series

在numpy中,一维数据结构是数组Array

Series 的功能相对numpy的Array要更多,因为Series是建立在Numpy至上的

1.数组Array

1)一般操作

其相关操作类似列表,如查询、切片、循环等。

示例:

2)Array与列表的区别

1.具有统计功能

如平均值mean()、标准差std()

2.可以进行向量化计算

  • 向量相加
  • 与标量相乘
  • 注意

列表的元素可以是不同的数据类型,而数组Array里面的每一个元素都必须是同一种数据类型。

2.Series

Series相较于Array多了索引,可以在定义的时候指定索引。

示例:

1)常用操作

  • 获取描述统计信息 describe
  • 根据位置获取值 iloc
  • 根据索引获取值
  • 向量相加

Series中向量是根据相同的索引进行相加的,当相加的两者没有相同的索引时,输出值将是空值NaN。此时可以使用方法dropna来将空值删除

另外可以采用将缺失值事先进行填充(采用fill_value)的方法。

二、二维数据结构

在numpy中,使用数组Array来创建二维数据

在pandas中,使用数据框dataframe来创建二维数据

一般来说dataframe更加常用

1.数组Array

示例

1)一般操作

  • 查询元素:[行号,列号]

行号和列号都是从0开始算的,通过相应的行号和列号可以定位到相应的元素

  • 获取某一行所有元素:[对应行的行号, : ]
  • 获取某一列的所有元素: [ :,对应列的列号]

2)特殊操作

  • 数轴参数 axis

默认情况下,对数组Array进行的统计操作都是在所有元素的基础上进行的。在需要按行或列来进行统计计算的时候,需要用到数轴参数。

axis=1的时候,统计值按来进行计算

axis=0的时候,统计值按来进行计算

2.数据框 DataFrame

在二维数组上,DataFrame相较于Array有两个优点:

  • 每列的数据可以是不同的类型
  • 具有索引功能(类似于Series),每行和每列都有索引值

示例

1)一般操作

iloc属性用于根据位置查询值

  • 查询元素:变量名.iloc[元素所在的行,元素所在的列]
  • 获取某一行:变量名.iloc[对应行的行号, : ]
  • 获取某一列:变量名.iloc[:,对应列的列号 ]

loc属性用于根据索引查询值(更加常用)

  • 查询元素:变量名.loc[元素所在的行,需查询的列名]
  • 获取某一行:变量名.loc[对应行的行号, : ]
  • 获取某一列:变量名.iloc[:,对应列的列名]

查询某几列:变量名[[‘列名1’,‘列名2’]]

切片功能:指定范围

通过loc方法,也可以切割出从‘购药时间’到‘商品名称’之间的所有列

### 2)特殊操作

  • 建立有序的数据框

直接使用字典结构获得的数据框,其列名的排列顺序有可能是不按照定义时的顺序来进行排列的。因此可以使用OrderedDict来固定顺序

  • 平均值计算

DataFrame是按每列来求平均值的

  • 通过条件判断来筛选出符合要求的数据
  • 查看数据集里面的描述统计信息

三、案例

数据分析的五大步骤:提出问题、理解数据、数据清洗、构建模型、数据可视化

本次使用的数据集是朝阳医院的销售数据

1、提出问题

获取月均消费次数、月均消费金额、客单价、消费趋势

2、理解数据

1)读取数据

2)打印前五行,看看数据集都有哪些参数

3)查看数据集有几行几列

4)查看各列的数据类型

3、数据清洗

数据清洗包括六个步骤:

  • 选择子集(选择本次分析所需的列)
  • 列名重命名(列名不符合使用习惯等)
  • 缺失数据处理
  • 数据类型转换
  • 数据排序
  • 异常值处理

1)选择子集

2)列名重命名

3)缺失数据处理

Python的缺失值有3种:

  1. Python内置的None值
  2. Pandas中的缺失值NA,表示不可用not available
  3. 对于数值数据,Pandas使用浮点值NaN(not a number)表示缺失数据。如提示有Float错误,就表明存在缺失值。

因此,缺失值总共有3种:None,NA,NaN

缺失数据处理有两种方法:

  • 直接删除缺失数据
  • 通过建立模型来补齐缺失值

4)数据类型转换

  • 将字符串转换为数值
  • 将字符串转换为日期格式

需要使用split方法,先将日期和星期分开

分开之后,销售时间列只有日期值,此时的日期值仍然是字符串,需要将其转换为日期。

通过转换,销售时间已经由字符串转换为日期,转换过程中不符合日期格式的数值会被转换为空值,需要将其删除。

5)数据排序

打印排序之前的数据集

通过代码让数据集按销售日期进行排序

打印排序后的数据集

进行排序之后,各行的索引值还是之前的行号,需要将其修改为从0到N按顺序的索引值

6)异常值处理

使用描述指标,查看哪些数据存在异常

对异常值进行处理之后,再使用描述指标查询一次,无异常值

4、构建模型

业务指标1:月均消费次数=总消费次数/月份数

业务指标2:月均消费金额 = 总消费金额 / 月份数

业务指标3:客单价=总消费金额/总消费次数

业务指标4:消费趋势(绘制折线图)

5、数据可视化

消费趋势和数据可视化将在后期课程学习。

补充知识点:

  • None和NaN的区别

numpy 获取特定数值的索引_入门Numpy、Pandas及案例实践相关推荐

  1. python花式索引_初探Numpy中的花式索引

    Numpy中对数组索引的方式有很多(为了方便介绍文中的数组如不加特殊说明指的都是Numpy中的ndarry数组),比如:基本索引:通过单个整数值来索引数组 import numpy as np arr ...

  2. MySQL第12天:MySQL索引优化分析之性能优化案例实践

    MySQL索引优化分析之性能优化案例实践 执行计划中各select_type含义可以看:MySQL第11天:MySQL索引优化分析之性能分析 https://weibo01.blog.csdn.net ...

  3. numpy 创建加一行_Python数据分析快速入门--NumPy amp; Pandas

    之前为大家分享了python的基本语法,有疑问的小伙伴可以参考下文- 土豆爱数学:零基础如何快速入门python​zhuanlan.zhihu.com 对python基本语法了解后,就可以尝试用pyt ...

  4. ElasticSearch创建、修改、获取、删除、索引Indice mapping和Index Template案例

    为什么80%的码农都做不了架构师?>>>    The best elasticsearch highlevel java rest api-----bboss ElasticSea ...

  5. python数值运算实例_“每天进步一点点”案例学习python数值操作

    这是树哥讲python系列的第四篇文章. 本质上计算机熟悉的是二进制,也就是我们常说的"0,1"代码,所以无论是执行的命令还是数据本身,都必须转化为0和1他们才会认知.而我们熟悉的 ...

  6. js获取数组最大值的索引_数组中最大值的返回索引

    RyanStephen提出了一个问题:Return index of greatest value in an array,或许与您遇到的问题类似. 回答者Ryan给出了该问题的处理方式: This ...

  7. Python获取手机4K壁纸,一个入门练手的案例

    前言 一. 数据来源分析 明确需求, 我们采集网上什么数据内容, 在什么地方 分析我们想要高清原图在什么地方有 浏览器自带工具: 开发者工具 F12 鼠标右键点击 插件 选择 network 刷新网页 ...

  8. 【Python】Numpy数组的切片、索引详解:取数组的特定行列

    [Python]Numpy数组的切片.索引详解:取数组的特定行列 文章目录 [Python]Numpy数组的切片.索引详解:取数组的特定行列 1. 介绍 2. 切片索引 2.1 切片索引先验知识 2. ...

  9. numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array)

    numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array) 目录

最新文章

  1. linux 内核网络协议栈
  2. inux读取ISO文件或是光驱的方法--挂载
  3. 2020国货品牌力发展报告
  4. NGINX配置基于Node.js服务的负载均衡服务器
  5. geforce experience不能登录_青椒第二课堂禁毒平台|官方网站登录
  6. addeventlistener事件第三个参数_JavaScript 事件与事件处理机制
  7. jQuery插件管理方案
  8. 如何在Excel中隐藏单元格,行和列
  9. e4a 蓝牙温度app_单片机ESP8266无线传输DHT11温湿度(APP+E4A调试说明与程序设计)
  10. 软考真题答案-2021年11月系统集成项目管理工程师上午题(二)
  11. gcc与cuda的关系
  12. 网络安全一哥的奇安信发布了全球高级可持续威胁年度报告 值得学习
  13. 在智慧城市建设中 计算机模拟是一个强大的工具
  14. 01- SA8155P QNX LA/LV 启动(01) - startup
  15. CardView属性简介
  16. VUE项目练习大全(附github源码)
  17. 基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql)
  18. 计算语言学之汉语分词
  19. 注册页面reg.html
  20. SDUT java 单词和字符鉴别器

热门文章

  1. 迷宫(2017省赛)
  2. Properties
  3. 百万数据php7取出循环_php7关于foreach循环综合问题
  4. 【审批工作流camunda教程】(二):camunda数据库中的48张表分别的大致含义,数据库表结构介绍
  5. 技校计算机专业都学什么课程,技校人工智能主要学什么 人工智能专业是什么...
  6. 《大话传输网》学习笔记(二)——————MSTP多业务传送平台、传输距离的计算、波分复用系统DWDM、优缺点、OTN、SDH电交叉、ODUk、OTUk、OPUk、OTN光交叉、OTN单板系统
  7. 建筑绘图软件测试自学,自考建筑用什么软件刷题?自考建筑考试APP复习备考经验分享...
  8. 原生JS实现VR看图特效
  9. davinci resolve达芬奇
  10. vue3之实现响应式数据ref和reactive