Python三方库:Pandas(数据分析)
Pandas是一个基于Numpy的数据分析包,这个库就是为数据分析而生的,你可以像操作Excel一样操作Pandas,实现数据的选择排序、筛选过滤、统计分析等功能,实际上,Pandas就是Python中的Excel,在学习Pandas之后你会更加深刻的理解这句话是多么的形象准确的。 为了简化表示,本文示例中的pd表示pandas库,即import pandas as pd。 ? 一、基础数据结构DataFrame和Series Pandas中最基础的数据结构就是DataFrame和Series,从数组的角度理解,可以将DataFrame看作是二维数组,将Series看作是一维数组,当然,最直观的理解就是DataFrame是一个Excel表格,由行索引、列名和数据(二维数组)组成,而Series是则表中的一列数据,只有行索引和数据(一维数组)两部分。 1. 创建DataFrame和Series 一个DataFrame可以看作是由行索引、列名及数据(二维数组)三部分构成,对于行索引,在Pandas中的处理是比较特殊的,比如有n行数据,默认情况下,行索引会是我们熟悉的从0到n-1的索引号,但是我们也可以自己指定每一行的行索引,或者说是行标签,通过行标签同样也能取到对应行的数据。当然,列名如果没有指定,同样是0到n-1的序号。 通过列表创建DataFrame: 通过字典创建DataFrame: 通过文件创建DataFrame: csv文件数据 代码示例 ? 通过列表创建Series: ? 2. 查看DataFrame和Series DataFrame和Series对象有许多快速查看自身信息的属性和方法,因为Series的许多属性和方法与DataFrame都是相似的,所以这里就只列一些DataFrame中比较常用的:
简单示例: ? 二、索引操作 这里说的索引指的是行索引或者说行标签,Pandas中关于行索引有许多巧妙且实用的用法,能帮助我们更好的进行数据分析,具体见示例代码。 对于索引的使用,即可以像Numpy中那样去操作Pandas中的索引,也可以使用iloc()方法和loc()方法去操作索引,区别在于iloc()方法只能用于原始的0到n-1索引,而loc()方法可以将自己指定的行标签像索引一样去操作,具体见示例代码。 ? 三、常用方法 因为Pandas的核心是Numpy库,所以Numpy中的一些特色用法在Pandas中也是可以使用的,比如通过算术运算符实现对每个元素的加减乘除等操作,以及使用max、mean等统计方法在Pandas中也都是支持的。 以下列举一些DataFrame和Series的常用操作和方法(具体的参数使用请参考对应的帮助文档或官方API文档),为了简化表示,df代表DataFrame对象,s代表Series对象,具体使用效果见示例代码。
? 四、SQL功能 Pandas中有一些方法能实现像SQL一样的功能,如groupby方法可以实现SQL中的分组功能,merge方法可以实现SQL中的表连接功能,具体见示例代码。 ? 五、透视表 所谓透视表,就是使用pivot()方法或pivot_table()方法从原本的表格中抽取三列内容并将其转换为另一个表格,以便更直观、更方便地去观察和分析这三列数据,具体效果看了示例就明白了。 ? 六、时间处理 Pandas中有一套自己的时间字符串处理方法,而且使用起来也很方便,如pd.Timestamp()可以将字符串转换为时间戳,pd.Timedelta()可以进行时间的加减运算,pd.to_datetime()可以将字符串转换为日期。如果遇到了时间格式字符串,建议优先考虑Pandas自带的时间处理方式。 ? 七、批量处理map和apply 如果想要对表格中某行或某列的所有元素执行同一个操作,可以使用map()方法, 而想要对表格中所有行或所有列都执行同一个操作,则可以使用apply()方法。 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |