数据分析常用python包 python数据分析用什么包_Python

在数据分析领域中第三方包用到最多的是pandas、numpy与matplotlib。

Pandas是一个强大的分析结构化数据的工具集;它的使用基础是numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

Pandas主要包含两个数据类型:

  1. Series
  2. DataFrame

Pandas比numpy好用。

numpy(Numerical Python的简称)是基于Python的高性能科学计算和数据分析的基础包。提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

matplotlib是Python的绘图库,主要做数据可视化图表。

一、知识点

1. 一维数据分析

numpy与pandas这两个包都有表示一维数组的特殊数据结构,在numpy中的一维数据结构叫数组Array,在pandas中的一维数据结构叫Series,Series比Array的功能更多,因为pandas的Series是建立在numpy的基础上的。

数据分析常用python包 python数据分析用什么包_python_02

1.1 使用numpy的array进行一维数据分析

示例:

定义列表:

数据分析常用python包 python数据分析用什么包_pandas_03

数据分析常用python包 python数据分析用什么包_数据分析_04

1)索引查询元素:

数据分析常用python包 python数据分析用什么包_pandas_05

2)切片访问:

数据分析常用python包 python数据分析用什么包_数据分析_06

3)遍历循环访问:

数据分析常用python包 python数据分析用什么包_Python_07

4)使用dtype查看数据类型:

数据分析常用python包 python数据分析用什么包_数据分析_08

dtype详细信息参考网址:

Data type objects (docs.scipy.org/doc/numpy-1.10.1/reference/arrays.dtypes.html

5)统计计算功能,如:平均值mean()、标准差std()

数据分析常用python包 python数据分析用什么包_pandas_09

6)向量化运算,如:向量相加、向量乘以标量

数据分析常用python包 python数据分析用什么包_数据分析常用python包_10

1.2 使用pandas的series进行一维数据分析

示例:

定义一维数据结构:

数据分析常用python包 python数据分析用什么包_数据分析_11

注意索引:

数据分析常用python包 python数据分析用什么包_python_12

数据分析常用python包 python数据分析用什么包_数据分析常用python包_13

1)获取描述统计信息:

数据分析常用python包 python数据分析用什么包_数据分析常用python包_14

2)获取值

iloc属性用于根据位置顺序获取值、loc属性用于根据索引获取值

数据分析常用python包 python数据分析用什么包_pandas_15

3)向量化运算:向量相加

数据分析常用python包 python数据分析用什么包_数据分析_16

不同的向量相加时,索引不同会导致不相同的索引的数据为空值None

4)处理缺失值(空值)

数据分析常用python包 python数据分析用什么包_数据分析常用python包_17

方法2中,fill_valiue=0将空值填充为0,去除缺失值,再将s2与s1相加

2. 二维数据分析

二维数据结构既有行又有列,类似于一个二维Excel表格。

在numpy中用数组Array创建二维数组,而在pandas中用数据框DataFrame创建二维数组。pandas有额外的功能,处理表格比numpy更方便。

2.1 使用numpy的array进行二维数据分析

示例:

数据分析常用python包 python数据分析用什么包_pandas_18

创建如上图表格的二维数组结构:

数据分析常用python包 python数据分析用什么包_python_19

1)获取元素

数据分析常用python包 python数据分析用什么包_Python_20

2)按数轴进行计算

axis是numpy的数轴参数

数据分析常用python包 python数据分析用什么包_python_21

数据分析常用python包 python数据分析用什么包_python_22

2.2 使用pandas的数据框DataFrame进行二维数据分析

示例:

数据分析常用python包 python数据分析用什么包_python_23

创建如上图表格的数据框:

定义有序的数据框

数据分析常用python包 python数据分析用什么包_数据分析_24

1)平均值计算(按列计算)

数据分析常用python包 python数据分析用什么包_Python_25

2)获取值

iloc属性用于根据位置顺序获取值

数据分析常用python包 python数据分析用什么包_数据分析_26

loc属性用于根据索引获取值

数据分析常用python包 python数据分析用什么包_数据分析常用python包_27

3)复杂查询

切片功能:

数据分析常用python包 python数据分析用什么包_数据分析_28

条件判断:

数据分析常用python包 python数据分析用什么包_python_29

4)查看数据集描述统计信息

数据分析常用python包 python数据分析用什么包_Python_30

图解每一列的统计数值:

数据分析常用python包 python数据分析用什么包_数据分析_31

数据分析常用python包 python数据分析用什么包_python_32

二、案例实操

1. 提出问题

对朝阳医院的销售数据计算业务指标月均消费次数、月均消费金额,客单价,并指出消费趋势

2. 理解数据

2.1 读取Excel的数据

路径中最好不要有中文,或者特殊符号啥的,不然路径会提示错误找不到。最好将文件放到一个简单的英文路径下。

数据分析常用python包 python数据分析用什么包_数据分析常用python包_33

2.2 打印前几行,查看所有字段

数据分析常用python包 python数据分析用什么包_数据分析_34

2.3 查看有多少行,多少列

数据分析常用python包 python数据分析用什么包_数据分析_35

2.4 查看每一列的数据类型

数据分析常用python包 python数据分析用什么包_python_36

3. 数据清洗

3.1 选择子集

所有的列在数据分析中都需要用到,本案例不需要选择子集

3.2 列名重命名

数据分析常用python包 python数据分析用什么包_python_37

3.3 缺失数据处理

python缺失值有3种:

1)Python内置的None值

2)在pandas中,将缺失值表示为NA,表示不可用not available。

3)对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。

后面出来数据,如果遇到错误:说什么foloat错误,那就是有缺失值,需要处理掉

所以,缺失值有3种:None,NA,NaN

dropna函数详细使用地址:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.htmlpandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html

数据分析常用python包 python数据分析用什么包_数据分析_38

3.4 数据类型转换

字符串转换为数值(浮点型)

数据分析常用python包 python数据分析用什么包_数据分析_39

运行后,会报警告SettingWithCopyWarning。一般信息有两列,一类是Warning警告信息,一类是Error错误信息。警告的信息不用管,我们只关注错误类型的信息

字符串转换为日期数据类型

补充知识点(字符串分割):

数据分析常用python包 python数据分析用什么包_Python_40

知识点(字符串分割)运用:

数据分析常用python包 python数据分析用什么包_数据分析常用python包_41

注意:

如果运行后报错:AttributeError: 'float' object has no attribute 'split',是因为Excel中的空的cell读入pandas中是空值(NaN),这个NaN是个浮点类型,一般当作空值处理。所以要先去除NaN在进行分隔字符串

补充知识点(None和NaN有什么区别):

None是Python的一种数据类型,NaN是浮点类型 两个都用作空值

数据分析常用python包 python数据分析用什么包_pandas_42

字符串转换为日期数据类型,继续

数据分析常用python包 python数据分析用什么包_pandas_43

数据分析常用python包 python数据分析用什么包_数据分析_44

3.5 数据排序

by:按哪几列排序,ascending=True 表示升序排列,,ascending=True表示降序排列。

na_position=True表示排序的时候,把空值放到前列,这样可以比较清晰的看到哪些地方有空值。

官网文档:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.htmlpandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

数据分析常用python包 python数据分析用什么包_pandas_45

数据分析常用python包 python数据分析用什么包_Python_46

3.6 异常值处理

数据分析常用python包 python数据分析用什么包_数据分析_47

4. 构建模型

4.1 求月均消费次数

月均消费次数=总消费次数 / 月份数

数据分析常用python包 python数据分析用什么包_python_48

数据分析常用python包 python数据分析用什么包_pandas_49

4.2 求月均消费金额

月均消费金额 = 总消费金额 / 月份数

数据分析常用python包 python数据分析用什么包_pandas_50

4.3 求客单价

客单价(per customer transaction)是指商场(超市)每一个顾客平均购买商品的金额,客单价也即是平均交易金额。

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

数据分析常用python包 python数据分析用什么包_pandas_51

5. 数据可视化