在数据分析领域中,用到最多的包是numpy(用于数学计算)、pandas(基于numpy的数据分析工具,方便对表的数据结构进行分析)和matplotlib(图形绘制库,用于数据分析结果的可视化)。本文首先了解下Numpy和pandas在数据分析中的一些基本操作。
本文结构如下:
一、一维数据分析
二、二维数据分析
三、案例:销售数据分析
一、一维数据分析
Numpy中表示一维数组的是array,pandas表示一维数组的是Series。Series是建立在numpy基础上的,比array有更多的功能。使用这两个数组首先用import导入numpy和pandas这两个包。
(一)Numpy 一维数组array
- 定义一个数组:
- 查询访问array中的元素:
- 通过for i in 数组名遍历数组中的元素:
- 通过数组名.dtype查看数组中元素的数据类型:
Numpy数组array和列表的区别:
1、array可以进行统计功能,如求平均值mean(),标准差std()
2、array可以进行向量化运算(相加、乘法)
查看下图中array和列表相加结果的区别。
3、array中元素必须是同一种数据类型,列表中的元素可以是不同数据类型。
如图,虽然数组array1中的元素1和3看起来是数据类型,但是在打印出来之后,1和3都作为字符串类型了。而列表list1中的1和3打印出来是数据类型。
上图array2中的元素包含列表和字符串,两种数据类型不相同,在打印的时候就会报错,如果将1和3也改成列表,就可以打印了:
可以看到array2里的元素是3个列表。
(二)pandas 一维数组Series
- Series和array的主要区别是Series可以通过索引定位数组中的数据。在定义的时候通过index定义索引。
要注意这里的Series首字母应大写,不然会报错。而定义array的时候首字母不用大写。Series后面接小括号,小括号前半部分是列表形式的元素,后半部分是用index=[]指定每个元素的索引,方便以后通过索引访问其中的元素。
- 可以通过describe获取数组的描述统计信息(元素个数,平均值,标准差,四分位数,最大最小值),数组名.describe():
- 获取数组中的元素:
方法一:用iloc属性根据位置获取元素
方法二:用loc属性根据索引获取对应的元素
- Series向量运算:
1、用加号+直接相加,索引值相同的元素才会相加,只出现在一个数组里的索引相加之后的值为空值。
在数据分析中,可以通过Ser.dropna()删除掉空值。