前言
本期重点在于学习基于python的数据分析包pandas的相关内容。
内容结构:
1.学习pandas导入的基础方法,pandas两个核心数据结构Series与DataFrame的构造。
2.pandas的基本操作:包括查找索引、删除、切片和排序排名。
1
pandas与它的导入方法
pandas是基于Numpy构建的含有更高级数据结构和工具的数据分析包,它约定俗成的导入方法如下:
在导入pandas数据分析包之后,我们来学习如何构建Series和DataFrame这两个核心数据结构。
首先是作为一维的序列的Series对象的构造,任意的一维数据都可以用来构造,包括字符和数字等。最简单的Series序列构造方法如下:
在运行代码得到序列s的结构:
接下来我们分析Series对象包含两个主要属性,一个是右边一列的values,用来表示数据的值;一个是左边一列的index,用来表示数据的所处的位置,在没有设定的默认情况下,index按顺序从0开始排列。如果要设定index的初始值,则可以使用如下方式来进行设定,将index按顺序设定为a,b,c,d:
得到Series对象s的结构为:
其中,Series对象中的元素会严格按照index来构建,若存在data的缺失,则会出现NaN的值,若存在data值的数量超过index值的数量则无法构建模型。
之后我们来讲作为二维数据结构的DataFrame。DataFrame是一个表格型的数据,它由一组index和多组values构成,每组values可以是不同的类型,可以看成是index相同的Series的集合。
DataFrame的构造方法与Series类似,可以使用如下方法构造:
但是使用这种方法构造会导致代码过长容易混淆出错,因此可以使用如下方法进行替代:
先将data数据独立,之后用DataFrame函数将data中的数据组引入,同时可以使用columns来调节数据组名字的顺序,得到如下的结果:
在DataFrame中若出现缺失值也会由NaN来填补,范例如下:
2
基于pandas的基本操作
接下来讲一些pandas的基本操作。
第一个基本操作是查找索引,使用“x[x== ]”进行查找,我们使用本文最开始的Series序列s查找python:
运行之后我们可以得到如下的结果:
查找索引还可以延伸为重新索引,通过.reindex函数实现,用序列s做示范得如下结果:
S中index的顺序随着t中index的顺序排列了,同时缺失的e的value由NaN取代,排列成如图中所示的结果。如果结果中出现缺失值,可以使用fill_value与method=’ffill’进行填充,结果如下:
可以看出fill_value是使用特定值进行填充,而method=’ffill’是使用上一个值来填充。
第二个操作方法是删除指定轴上的项,即删除Series上的一个元素或者DataFrame的某一行(列),方法如下:
需要注意的是.drop()返回的是一个新对象,元对象不会改变。
第三个基本操作是索引和切片,语法为obj[:],需要注意的是,由于pandas的index并不仅限于整数,当index为非整数时,切片是末端包含的,结果显示如下:
我们可以发现当使用截取到‘c’时,结果包含了‘c’,这就是末端包含。
而对于DataFrame而言,标准切片语法为.ix[:,:],即可以从两个方向上切片,范例如下:
整体而言除语法不同外与Series的切片注意点类似。
第四个基本操作是排序与排名。如果要对Series的index进行排序,则语法为.sort_index,如果是对values进行排序,则语法为.sort_value,结果显示如下:
当对DataFrame进行排序时,需要规定一个比较的参数,且语法都为.sort_index,范例如下:
图中就是根据l3列对数据进行了排序。
排名函数的语法为.rank,与排序不同的是它会把对象的value替换成名次,范例如下:
3
结束语
pandas作为python中非常重要的一种数据分析包,它的功能非常强大,使用起来也非常便捷,是一种很好的数据处理工具。本期内容中讲了一部分基础的操作,希望能对大家有所帮助,也希望大家能够和我一起在学习中进步。
本期作者:戴力
本期编辑校对:秦范
长按,关注数据皮皮侠

