Pandas是Python第三方库,提供高性能易用数据类型和分析工具
import pandas as pd
Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用
Pandas库的理解
两个数据类型:Series, DataFrame
基于上述数据类型的各类操作:基本操作、运算操作、特征类操作、关联类操作
NumPy
Pandas
基础数据类型
扩展数据类型
关注数据的结构表达
关注数据的应用表达
维度:数据间关系
数据与索引间关系
Series类型
Series类型由一组数据及与之相关的数据索引组成
• Python列表:index与列表元素个数一致
• 标量值:index表达Series类型的尺寸
• Python字典:键值对中的“键”是索引,index从字典中进行选择操作
• ndarray:索引和数据都可以通过ndarray类型创建
• 其他函数:range()函数等
Series类型的基本操作
Series类型包括index和values两部分;Series类型的操作类似ndarray类型;Series类型的操作类似Python字典类型。
Series类型的操作类似ndarray类型:1、索引方法相同,采用[];2、NumPy中运算和操作可用于Series类型;3、可以通过自定义索引的列表进行切片;4、可以通过自动索引进行切片,如果存在自定义索引,则一同被切片。
Series类型的操作类似Python字典类型:1、通过自定义索引访问;2、保留字in操作;3、使用.get()方法。
Series+ Series
Series类型在运算中会自动对齐不同索引的数据
Series对象和索引都可以有一个名字,存储在属性.name中:
Series对象可以随时修改并即刻生效。
总结:
Series是一维带“标签”数组
data_a -------> index_0
Series基本操作类似ndarray和字典,根据索引对齐。
DataFrame类型
DataFrame类型由共用相同索引的一组列组成
DataFrame是一个表格型的数据类型,每列值类型可以不同,DataFrame既有行索引、也有列索引,DataFrame常用于表达二维数据,但可以表达多维数据。
• 二维ndarray对象
• 由一维ndarray、列表、字典、元组或Series构成的字典
• Series类型
• 其他的DataFrame类型
DataFrame是二维带“标签”数组
DataFrame基本操作类似Series,依据行列索引。
Pandas库的数据类型操作
如何改变Series和DataFrame对象?增加或重排:重新索引,删除:drop。
.reindex()能够改变或重排Series和DataFrame索引。
.reindex(index=None, columns=None, …)的参数
参数
说明
index, columns
新的行列自定义索引
fill_value
重新索引中,用于填充缺失位置的值
method
填充方法, ffill当前值向前填充,bfill向后填充
limit
最大填充量
copy
默认True,生成新的对象,False时,新旧相等不复制
Series和DataFrame的索引是Index类型Index对象是不可修改类型
索引类型常用操作方法
方法
说明
.append(idx)
连接另一个Index对象,产生新的Index对象
.diff(idx)
计算差集,产生新的Index对象
.intersection(idx)
计算交集
.union(idx)
计算并集
.delete(loc)
删除loc位置处的元素
.insert(loc,e)
在loc位置增加一个元素e
.drop()
能够删除Series和DataFrame指定行或列索引
默认删除的是axis=0
算术运算法则:算术运算根据行列索引,补齐后运算,运算默认产生浮点数;补齐时缺项填充NaN (空值);二维和一维、一维和零维间为广播运算;采用+ ‐ * /符号进行的二元运算产生新的对象。
自动补齐,缺项补NaN
方法形式的运算
方法
说明
.add(d, **argws)
类型间加法运算,可选参数
.sub(d, **argws)
类型间减法运算,可选参数
.mul(d, **argws)
类型间乘法运算,可选参数
.div(d, **argws)
类型间除法运算,可选参数
fill_value参数替代NaN,替代后参与运算
不同维度间为广播运算,一维Series默认在轴1参与运算
比较运算法则:比较运算只能比较相同索引的元素,不进行补齐;二维和一维、一维和零维间为广播运算;采用> < >= <= == !=等符号进行的二元运算产生布尔对象。
同维度运算,尺寸一致
不同维度,广播运算,默认在1轴