Python资料分析(四)Pandas

此文是《10周入门资料分析》系列的第16篇
想了解学习路线,可以先阅读 学习计画 | 10周入门资料分析

上篇介绍了 NumPy,本篇介绍 pandas。

目录
pandas入门
pandas的资料结构介绍
基本功能
汇总和计算描述统计
处理缺失资料
层次化索引
pandas入门
Pandas 是基于Numpy构建的,让以NumPy为中心的应用变的更加简单。
pandas的资料结构介绍

1、Series

由一组资料(各种 NumPy 资料类型)和一组索引组成:

Values 和 index 属性:

给所创建的Series带有一个可以对各个数据点进行标记的索引:

与普通NumPy阵列相比,可以透过索引的方式选取Series中的单个或一组值:

可将Series看成是一个定长的有序字典,它是索引值到资料值的一个映射(它可以用在许多原本需要字典参数的函数中)。
如果资料被存放在一个 python 字典中,可以直接透过这个字典来创建Series:

如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列),上面的states。
Series最重要的一个功能是在算数运算中自动对齐不同索引的资料:

Series物件本身及其索引都有一个name属性:

Series的索引可以透过赋值的方式就地修改:

2、DataFrame

是一个表格型的资料结构。既有行索引也列索引。DataFrame中面向行和面向列的操作基本是平衡的。DataFrame中的资料是以一个或多个二维块存放的。用层次化索引,将其表示为更高维度的资料。
构建 DataFrame:直接传入一个由等长清单或 NumPy 阵列组成的字典。

会自动加上索引,但指定列序列,则按指定顺序进行排列:

和Series一样,如果传入的列在资料中找不到,就会产生NA值:
透过赋值的方式进行修改:

透过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series:

栏也可以透过位置或名称的方式进行获取,比如用索引栏位ix。
将清单或阵列赋值给某个列时,其长度必须跟DataFrame的长度相匹配。如果赋值的是一个Series,就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值:

给不存在的列赋值会创建出一个新列,关键字del用于删除列:

透过索引方式返回的列是相应资料的视图,并不是副本,对返回的Series做的任何修改都会反映到源DataFrame上,透过series的copy方法即可显式地複製列。
另一种常见的资料形式是嵌套字典,如果将它传给DataFrame,解释为 — — 外层字典的键作为列,内层键作为行索引。

对结果进行转置:

指定索引按序列:

由Series组成的字典差不多也是一样的用法:

设定了DataFrame的index和columns的 name 属性,这些资讯也会被显示,values 属性以二维ndarray的形式返回DataFrame中的资料:

如果DataFrame各列的资料类型不同,值阵列的资料类型就会选用能相容所有列的资料类型(如 dtype = object)。

3、索引物件

pandas的索引物件,管理轴标籤和其他中继资料(如轴名称等)。
构建Series或DataFrame时,所用到的任何阵列或其他序列的标籤都会被转换成一个Index,且Index物件是不可修改的:

Index的功能类似一个固定大小的集合:

基本功能

1、重新索引

方法 reindex:创建一个适应新索引的新物件。

调用该Series的reindex将会根据新索引进行重排。如果某个索引值当前不存在,就引入缺失值。

对于时间序列这样的有序数据,重新索引时可能需要做一些差值处理:

对于DataFrame ,reindex可以修改行、列索引,或两个都修改。如果仅传入一列,则会重新索引行:

使用columns关键字可重新索引列:

ix标籤索引功能:

丢弃制定轴上的项
drop方法返回的是一个在指定轴上删除了指定值的新对象:

对于DataFrame,可以删除任意轴上的索引值:

2、索引、选取和过滤

Series索引的工作方式类似于NumPy阵列的索引,但Series的索引值不只是整数:

利用标籤的切片运算,其包含闭区间(与普通 python 切片运算不同):

对DataFrame进行索引就是获取一个列:

或多个列:

这种索引方式的特殊情况:透过切片或布林型阵列选取行。

另一种用法是透过布林型DataFrame进行索引(在语法上更像 ndarray):

专门的索引栏位 ix,是一种重新索引的简单手段:

3、算数运算和数据对齐
pandas最重要的一个功能是对不同索引的物件进行算数运算。
对不同的索引对,取并集:

自动的资料对齐操作在不重叠的索引出引入了NA值,即一方有的索引,另一方没有,运算后该处索引的值为缺失值。
对DataFrame,对齐操作会同时发生在行和列上。

4、在算术方法中填充值

对运算后的NA值处填充一个特殊值(比如 0):

否则 e 列都是NaN值。
类似,在对Series和 DataFrame 重新索引时,也可以指定一个填充值:

······································
···········································
··············································
·········································
点击链接获取全文:Python资料分析(四)Pandas
我是「数据分析那些事」。常年分享数据分析乾货,不定期分享好用的职场技能工具。

已经有2800+的同好按赞我的脸书了,你不来吗?XD


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章