《利用Python 进行数据分析 第二版》 -第8章 数据规整:连接、联合与重塑

本章重点内容:

1、分层索引

2、联合与合并数据集

3、重塑和透视

接下来分别详细说明

1、分层索引

分层索引是pandas的重要特性,先看一个分层结构的数据,如下:

 

 通过分层索引,可以简洁的选择出数据的子集,如下:

 

 既然是分层索引,不仅仅局限在外层索引,还可以通过”内层“进行选择,如下:

 

 分层索引的数据,可以通过unstack函数进行重新排列,如下:

 

 当然,也可以通过stack函数进行反向操作,如下:

 

 上面的数据案例是Series类型,DataFrame数据对象也是可以的,而且每个轴都可以拥有分层索引,看一个DataFrame的数据,如下:

 

 分层索引可以选择不同的列,如下:

 

 2、联合与合并数据集

数据库风格的DataFrame连接

合并或连接操作通过一个或多个键连接行来联合数据集,pandas中的merge函数主要用于将各种join操作算法运用在数据上

先看两个数据:

数据1:

 

 数据2:

 

 这两个数据有共同的列”key“,所以如果把这两个数据连接在一起,就可以使用merge函数,如下:

 

 如果没有指定连接的列,merge函数会自动寻找两个数据中相同的列来进行连接,当然,你也可以通过指定列来连接,这是更显示的方式,如下:

 

 从结果你会发现,没有c和d的数据,merge函数默认情况下做的是内连接,也就是两个数据的交集,可以调整参数选择不同的连接方式,如下:

 沿轴向连接

另一种数据组合操称为拼接,NumPy的concatenate函数可以实现该功能,如下:

先看一个数组数据:

 

 如果想在每行都重复一次数据数据,可以通过拼接实现,如下:

 

 在pandas中有一个concat函数能实现更多的功能,如下:

可以连接Series类型数据

 

 通过concat函数可以直接拼接在一起,如下:

 

 concat实现的功能是拼接,和前面讲过的merge函数不一样,如果对同样的数据,使用concat函数,你就发现他们两个的差异,如下:

 

 只是把两个数据拼接在一起,没有对应关系

3、重塑和透视

在调整数据的时候,需要”长“和”宽“之间转换,这个时候可以使用pivot和melt两个函数

首先看一个数据,如下:

 

 针对这个数据,可以用key作为分组指标,melt函数会进行转换,如下:

 

 pivot函数是melt函数的反向操作,可以将数据恢复原样,如下:

 

 

 以上就是本章重点内容,祝学习愉快

 

以下链接,可以供你了解这个系列学习笔记的所有章节最新进度

自学笔记系列:《利用Python 进行数据分析 第二版》 -写在开始之前

 

posted @ 2020-08-23 00:33  诡刺-ThornSoul  阅读(243)  评论(0编辑  收藏  举报