Pandas是Python第三方库,提供高性能易用数据类型和分析工具。引用pandas库:
import pandas as pd
对Pandas库的理解:
两个数据类型: Series, DataFrame
基于上述数据类型的各类操作
基本操作、运算操作、特征类操作、关联类操作
Pandas基于NumPy实现的,NumPy与Pandas的区别如下:
Numpy | Pandas |
---|---|
基础数据类型, ndarray | 扩展数据类型, Series 和 DataFrame |
关注数据的结构表达(维度,数据间的关系) | 关注数据的应用表达(数据与索引间关系) |
Series类型由一组数据及与之相关的数据索引组成。
Series举例:pd.Series()
函数参数1指定索引值,参数2指定索引,省略参数2可创建从0开始的自动索引。
Series类型可以由如下类型创建:Python列表、标量值、Python字典、ndarray、其他函数
其中Series中的自动索引和自定义索引并存,但不能混用
[]
举例:
Series操作中如果只对其中的一个元素进行索引,比如 b[3]
,则取出的是 b[3]
对应的值6;如果是自动索引切片,如 b[:3]
,则切出来的还是一个Series类型的数据,有索引也有值。
.get()
方法举例:
总结:Series是一维带“标签”数组。index_0 -> data_a
,Series基本操作类似ndarray和字典,根据索引对齐。
将表格数据转换为字典,而后用DataFrame类型来表示:
DataFrame获得其中的元素,索引默认取一列的元素,取一行的元素需要使用 .ix[索引]
,二维索引取具体的值,如下图:
其中,d['同比']
表示取 “同比” 该列带有行索引的数据,d.ix['c2']
表示取 c2
这一行带有列索引的数据,d['同比']['c2']
表示取对应的具体值。
总结:DataFrame是二维带“标签”数组,基本操作类似Series,依据行列索引。
如何改变Series和DataFrame对象?
重新索引 .reindex()
.reindex()
能够改变或重排Series和DataFrame索引
.drop()
.drop()
能够删除Series和DataFrame指定行或列索引+-*/
符号进行的二元运算产生新的对象.sort_index()、.sort_values()
.describe()
.cum*()、.rolling().*
.corr()、.cov()
.sort_index()
方法在指定轴上根据索引进行排序,默认升序。
.sort_index(axis=0, ascending=True)
举例:
.sort_values()
方法在指定轴上根据数值进行排序,默认升序。
Series.sort_values(axis=0, ascending=True)
DataFrame.sort_values(by, axis=0, ascending=True) # by: axis轴上的某个索引或索引列表
.sort_values()
方法举例:
注意:空值NaN统一放到排序末尾
在Series和DataFrame中,几乎可以囊括所有方法的结果,该方法是 describe()
方法:
方法 | 说明 |
---|---|
.describe() | 针对0轴(各列)的统计汇总 |
.describe()
方法之后仍然为Series对象,如下图:.describe()
方法之后仍然为DataFrame对象,如下图:累计统计分析函数能对序列中的前1-n个数进行累计运算,可减少for循环的使用,使得数据的运算变得更加灵活。
适用于Series和DataFrame类型,基本统计分析函数如下:
基本统计分析函数举例如下:
适用于Series和DataFrame类型,滚动计算(窗口计算)函数如下:
滚动计算函数举例如下:
适用于Series和DataFrame类型,相关分析函数如下:
相关分析函数举例如下: