当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第八章:python生态库 >  8.10第三方库-pandas库

返回《计算思维与人工智能基础》慕课在线视频课程列表

8.10第三方库-pandas库在线视频

下一节:8.11第三方库-matplotlib库

返回《计算思维与人工智能基础》慕课在线视频列表

8.10第三方库-pandas库课程教案、知识点、字幕

下面我们给大家介pandas第三方库

pandas是基于NumPy的一种工具

该工具为了解决数据分析任务而创建的

pandas纳入了大量库和一些标准的数据模型

提供了高效的操作大型数据集所需要的工具

pandas是python一个数据分析包

提供了大量能使我们快速便捷的处理数据的函数和方法

它是python成为强大而高效的数据分析环境的重要因素之一

下面我们给大家介绍pandas常用的两种数据结构

Series和DataFrame Series是一种类似于一维数组的对象

他有一组数据

那么可以使各种NumPy的数据类型以及

一组与之相关的数据标签或者是索引组成

仅有一组数据即可产生最简单的Series

我们看下面这段代码

我们首先导入pandas

那么通过Series的方法呢

可以创建一个Series对象

那么给一个列表就可以创造一个Series这样对象

那么我们可以看到它它会自动生成一组

索引0123这就是Series的这个对象这样的一个数据结构

另外的一个就是我们的DataFrame

DataFrame是一个表格型的数据结构

它还有一组有序的列

每列可以是不同的值类型

是数值型字符串型或者布尔值等都可以

那么DataFrame具有行索也有列索引

它可以看作Series组成的这个字典

把这些字典的可以共用同一个索引

跟其他类似的数据结构比如说

在R语言中DataFrame是相近的

DataFrame中面向行和面向列的操作基本上是平衡的

其实呢DataFrame中的数据是以一个或者多个二维快存放的

而不是列表字典或者别的一维数据结构

我们来看这个如何来去构建一个DataFrame对象的

那么最常用的是直接传入有一个等长的表

或者是NumPy数组组成了这样的一个词典

我们来看右边这段代码

我们通过一个创建一个data这样的一个字典类的数据对象

可以看的到间是一个字符串

而值是有一个列表组成的

我们看stateyearpop分别都是由后面的值都是有列表组成的

那么通过我们pdDataFrame这个方法就可以创建一个

DataFrame对象

他们创建了以后呢

我们可以看的到他的这个刚才我们在这个数据里面的字典

的键在这个地方就是我们列的索引名称

那么他们共用行的一个索引

那么这个DataFrame会自动生成

加上这个行索引

那么这个切这个全部列会被有序的排列是这样的一个过程

那么另外常见的一种创建的方式就是通过

是嵌套字典的方式来去创建

我们创建一个pop这样的一个字典的这个数据类型

那么可以看到这个键给一个Nevada的这样键

能不能里面的值呢又是一个字典

那么这个里面键值键值这样的组成

这个我们pop的通过DataFrame创建一个frame的一个对象

他出来的结果我们可以看的到

如果将传给DataFrame她就会被

刚才这个嵌套字典传进去后

他就会外层字典的键值就作为列

我们可以看外层的字典这个Nevada和ohoi

那么这个是可以作为我们列的索引

那么里面的字典嵌套字典里面的键作为内层的索引

他能相当于作为行的这样的一个索引

DataFrame中的columns跟字典键相比有一个明显不同

就是其顺序是可以被规定的

那我们在Series也好或者是在

DataFrame这样的数据结构对象里面

我们都可以进行一些基本的一些操作

比如说可以做一些重新索引还有切片排序统计

还有合并以及缺失值的处理等等这样工作

下面我们就给大家介绍常用的几个方法

也就是我们基本功能的使用

首先我们来看重新索引

pandas对象的一个重要的方法就是reindex

它的作用就是创建一个适应新索引的新对象

且调用Seriesr的eindex将会根据新索引进行重排

如果某个索引值当前不存在呢他就引入缺失

我们来看下面这段代码

首先制定一个Seriesr对象ab我们传进来的一个列表

2345给了一个指定的一个索引

是ABCD

我们不指定会默认的会生成的索引是0123

那么这指定了索引的话他就ABCD

好了我们想给他重新索引

那么将建立另外一个对象呢

就通过reindex那么在这个里面的

我们可以看到来把这个索引

给他加了一个e

那么在显示这个reindex的时候这个Seriesr对象的时候

他可以看的到他们值是没有变的

只是我们索引多了一个e那么e这个时候没有给值的

所以他就引入这个缺失值就是一个NaN这样子的值

更改列名

DataFrame更改列名最灵活的方式是使用remane函数

你可以传入一个字典那么其中keys就是原名values是新列名

还可以指定axis这个值

那么现在我们可以看到创建一个DataFrame对象

那么这个列名分别是col空格y和col空格two

那么现在要我们想把这个列名修改的话

就可以引用df.rename那么这时旧得列名

后面的这个传入个字典值是新列名

这是旧的列名那么它我们可以看

那么显示一下我们这个更改后df对象

我们来看他的列名作为一个修改

也可以直接用df.columns我们付给新的列名

可以看的到这个df

df他的列名所以就可以修改了

切片那么在这个切片里面呢

主要有两种方法

一种是loc以标签索引iloc是以下标索引来进行切片

我们来看一个例子

dates通过pd.date这个方法来生成一个行索引

行索引也是一个日期型

periods是6

也就是说他会生成六个索引

就是连续的六个

我们通过DataFrame来创建一个D,F这样的对象

生成六行四列这样的一个数组

那么给索引呢

我们可以看到index指的是行索引

那么展示一下她的结果呢

可以直接用前面的df也可以df.head就是从前开始

第几条一共六条

我们就展示6也可以

那么这个也是可以从后面展示几条

展示出来呢他的结果就是这样啊

这个是ABCD指标的值是通过

我们前面讲过的他的随机生成的这个数据

他们就是这个随机生成的这个数据呢

我们可以看得到通过我们的DataFrame

是这样去展示

如果我们现在想把它切片呢

loc是以标签索引来协调我们来看一看

我们df.loc前面这个方括号里面是切片

前面指的是行后面是列

那么行索引冒号全部就是缺少那么列索引

我们这里面是A和B

所以我们展示出来的结果我们行是全部显示的

列值显示A和B把这两列

那么如果使用iloc的话就是用下标

我们可以看得到这个iloc的话

那么也是左开右闭的原则

就是从第三行和第四行第五行不包括

那么列

那么这个三四就是这样啊

我们可以看01234啊

那么就是这个其实是第四行和第五行这个展示

这就是一个切片的功能

咱们切片后我们可以给它赋值

修改我们这个整个切片的这个某一个是某一块的

这个值都是可以实现的

另外的一个基本的功能就是排序

根据条件对数据集排序

那么这个用的方法就是这个sorting

对值进行排序

我们也来看看它的使用

我们首先可以看的到

我们刚才还是刚才我们那个df这个数据对象

我们按照这个sort-indexaxis=1 0是行1是列

那么对列进行排列

是指的是我们的升序还是降序

我们可以看到了刚才是哪1920190111这条数据在上面

那么他就做了一个降序的排列

那么还可以对某一列的值进行排列

比如说我们这个

是对于我们这款第C列的值来进行排列

那么如果也是按降序的话

我们可以谈执行以后可以看到第C列的值

那么索引为C的这列的值呢

他都是什么按降序进行排序

那么这个就是基本的排序功能

另外还有一些什么汇总和计算描述的功能

pandas对象拥有一组常用的数学和统计方法

常用的是用到常用的sum mean 这样子的

那他们大部分都属于简约或者是汇总的统计

其实就是用于从Series提取一个值或者从DataFrame

我们的行或列中提取一个Series

比如说我们刚才还是对我们的DF前面定义的这个

DataFrame这个对象的进行求点mean的话

这个方法求的就是每一列的一个平均值

我们来看如果我们通过nprendom.randint那么就是从10-20

取15个这样子的整数

产生这样一个Series对象S的时候

我们首先输出这个值

然后下面可以通过

来计算这个值里面的

就是他的每一个他是10的频率是多少

11的频率是多少

最后我们可以Smode来找出我们频率最大的那个数据

那么可以看这是他的生成的结果

0-14分别生成的我们是十到二十的数据

这是我们S出来的结果

下面的我们是要把他的这个值进行统计

这个出来的时候就是每一个数

每一个这个值

最后输出最大的那个

频率最高的那个SM的是最高的这个输出的数值

这就是可以通过一些求和呀平均值啊

计数的一些常用的统计的功能啊

另外的话

他还会提供一个describe这样的一个方法

那么这个方法呢

是它可以用于一次性的产生多个汇总的统计

我们也是对刚才我们这个df这个对象的进行

应用一个describe的方法

那么describe的方法

那么它产生的结果就是这样子的

她会有八行分别第一行时

我们一共计数一共有多少个

多少行那么有六个

六行那么技术就是六

那mean就是每一列的平均值

那么STD时每一列的标准差

那么min是每一列的最小值

在下面就是第一四分位的值

第二四分位的值

第三四分位数和最大的值都是对列的一个统计

这样的话这个就是一个一看就是一个多个的汇总

总体在我们使用数据的时候

对数据总体的一个概况的一个统计

通过describe不是很好的可以表现出来

下面我们给大家介绍pd.merge方法和concat方法的使用

首先我们来看merge的合并操作

我们来看这个例子

我们通过pd.DataFrame来创建一个left

它的列索引是key里面的值是up

另外一个列索引是lval

我们另外一个DataFrame对象

那么key down和up另外一个列索引是rval

那么如果我们想把他们合并的话

他们有一个共同的键是key

所以我们可以on是他们共同的键

把他进行合并合并后呢

那我们可以看的到那么他的索引行索引还是01

那么key这一行up的值lval的值s是1rval是4

一样down的时候呢

就把它合到一起

像当时与我们做了一个表的连接

两个表结构的一个连接

另外我们再看一个例子

我们看创建于framelDataFrame对象

framel2这样的一个对象

那么同比分别有ABC三个列索引

另外framel2里面有ACAD的索引

那这两个我们看相同的值就可以通过merge把他合并

那么on就是我们按照哪一个什么列索引合并

那么按照这个a这一列合并成这样

另外一个就是concat的方法的连接的使用

那么连接的使用的话我们也看一个例子

我们通过DataFramenp.ones生成一个

全部是一的这样的一个三行四列的这样的一个数

我们乘以零那么其实就是零的这样乘以一乘二

那么它的列索引分别是ABCD

我们输出这我们创建的Datadf1df2df3

我们可以看到是这样子的

那么如果把它做一个连接的时候呢

它可以按照可以做一个concat

刚才我们的df1df2连接起来

那么axis是1的时候呢

这个是我们的按照列进行合并

ignore这个索引只给true

他是需要重建的索引重建索引重建的话

就按照我们合并后的连接后的来进行重建

按列经行连接原来是0到3列

然后4到7列

8到11列把他连接着

那么这个他们的索引我们这个就是重建

另外一个如果是axis选0的话按行进行重建

那么这样相当于把一个按行

把我们的df1df2df3构成新的一个df.

这样的一个过程

这个就是merge和concat的一个使用

另外就是我们缺失值的处理啊

那么怎么样去处理缺失值呢

我们主要用的这个方法是

我们可以说dropna其实就是删除我们这个缺失值

fillna是填充那么这个dropna是可以按照我们

比如说我们要全部的所有的含这个空值的

都把他删除的话就这样子

后面括号里面是缺省的

我们也可以指定预知

比如说我们案例

然后列方向是三个的才去删除这一项的

那么也可以是将那个全部相都是nan的

来删除这一行来制定不同的预知

fillna就是填充

那么填充可以全部都填充里

他们也可以是对某一列的这个nan来填

那么就说第一列

付一个0那么第二列的0.5

那么也可以用这个ffill这个参数来指定前一个是只作为

列方向上前一个只作为他的填充值

给他进行差值或者是指定值来进行填充

那后面这两个idnull和notnull

其实就是判断这个这个对象是不是就有空值的

当然也返回一个布尔值

对于我们在实际应用中的即使是对于缺失的数据呢

我们一般的是不滤过那么通常的方法其实要去补充它的

那么补充的话我们大部分都是用通过

fillna这个方法来进行补充的

我们也是看右边这个例子这是我们用的这个数据

是我们前面我们创建这个df对象DataFrame对象

那么这个DataFrame对象我们现在呢

要给他建一个重新的索引

reindex我们的行号呢

是从零到三就是这四行columns

是原来的列号就加了一个e

这样的一个索引

那么这个columnse的这个索引的话

那么就说建了索引而我没有值的话

这个地方应该都是空的

但是我们可以通过切片负值

行坐标是1.2这两行标号为1.2这两行

那么这个列是e列

这个位置的值给他付为二

这是第零行第一行和第二行

那么这个值是给付了二他们展示出来的

我们剩下的这个nan的值

我若想填充的话可以通过

fillna这个函数来给他填

那么也可以通过我们指定的前面讲过指定的

某一列填成什么样的值都是可以操作

最后我们介绍一下关于pd,csv关于文件的操作

它可以通过我们readCSV这个方法来

对CSV的文件里的数据进行读取

可以通过一些参数

比如说encoding参数来可以读取带中文这个编码的一些文件

index-col如果是0的话把这个我们的行索引给他去掉

那么显示前四行我们读进来

这个文件显示前四行就是这样

我们也可以把我们的DataFrame对象

把它写到我们指定的CSV文件里

可以通过点to下杠CSV这个方法来写到指定的CSV文件

那么这个前面介绍的就是关于pandas我们常用的一些方法

那当然还有一些其他的方法

大家可以在下面去自己去学习好的

我们今天的课就到这

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

8.10第三方库-pandas库笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。