Day10 Python系列之Pandas、Numpy2019-
Python数据分析工具离不开四个包:numpy、pandas、scipy、matplotlib.
- numpy是数值计算最重要的基础包,大多数提供科学计算的包都是用numpy的数组作为构建基础。专门用来处理矩阵,他的运算效率比列表更高效。
- pandas是基于numpy的数据分析工具,能够快速的处理结构化数据的大量数据结构和函数。
- scipy是基于numpy的科学计算包,包括统计、线性代数等工具。
- matplotlib是用于绘制各种可视化图表的python库,其它第三方图表库例如seaborn也是基于matplotlib的。其它的ggplot、pyechart。
Numpy的ndarray:多维数据对象
ndarray的组成是nd+array(数组),意思是n维数组,也就是多维数组。提供的方法就是对这种数组做数学运算。
1. 像普通整数类型一样,操作整个数组的数字



2. 每个数组都有shape和dtype方法

创建ndarray:一种多维数组对象
创建数组最简单的方法就是使用array函数,它接受一切序列型对象(包括其他数组),然后产生一个新的

ndarray的数据类型

astype是对类型进行转化的方法
基本的索引和切片

是指通过数字或者数组的位置,截取数组的某一部分。如果要一个副本,可以用.copy().

布尔类型索引

数组的转置和轴对换

排序

唯一化以及其他的集合逻辑

Pandas
如果是从事大数据工作,Pandas库会给你很多惊喜。尤其是从Excel和VBA转向Python的用户。以往使用excel处理百万级别数据感到非常吃力,Pandas一定会让你感到满意。
Pandas文档对它的介绍是:快速、灵活和易于理解的数据结构,以此让处理关系型数据和带有标签的数据时更简单直观。
使用正确的姿势,Pandas可以很快
- pandas入门
- pandas的数据结构介绍
- 基本功能
- 汇总和计算描述统计
- 处理缺失数据
- 层次化索引
pandas入门
pandas是基于numpy构建的,理论上也是由数组组成的数据结构。只不过是在数组的基础上,增加索引和标签,让数据的处理更加简单和易懂。
数据结构
Series是一种增加索引的一维ndarray数组。每一个series由values和index组成。也可以理解为是python里面的一个有序字典(dict)。所以字典类型的数据可以直接作为参数赋值给series。
d = {'a':12, 'b':13, 'c':22}
s = Series(d)
DataFrame是一个表格型结构,可以理解为二维的Series。既有行索引,也有列索引。类似于excel中的表格,所以在处理excel导入的数据时,使用的容器就是DataFrame。每一行或者每一列单独截取出来,都是一个Series。
赋值
将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配。如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值。
还可以给index和value设置name属性,显示出来。
基本功能
- reindex: 重建索引
data = DataFrame([1,2,3], index=['f','e','w'])
data.reindex(['a','b','c'])
#使用column关键字可以重新索引列
col = ['pit','hal','ret']
data.reindex(columns = col)
- 索引、选取、过滤
loc是指location的意思,iloc中的i是指integer。iloc和loc方式索引也更为精细。这两者的区别如下:
loc works on labels in the index.(说白了就是标签索引)
iloc works on the positions in the index (so it only takes integers). (位置索引,和列表索引类似,里面只能是数字)
-
函数
image.png
-
排序和排名
image.png