status
type
date
slug
summary
tags
category
password
icon
Total Videos
Link
Video Duration
Pandas简介
官网:http://pandas.pydata.org
Pandas是Python第三方库,提供高性能易用数据类型和分析工具。
使用
import pandas as pd
调用pandas库,Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用。Pandas库的理解
Pandas库有两个数据类型:Series,DataFrame,Series相当于一个一维的数据类型,DataFrame相当于一个二维到多维的数据类型。
基于这两个数据类型,pandas支持了基本操作、运算操作、特征类操作、关联类操作
NumPy和Pandas的对比:
NumPy | Pandas |
基础数据类型 | 扩展数据类型 |
关注数据的结构表达 | 关注数据的应用表达 |
维度:数据间关系 | 数据与索引间关系 |
NumPy过于注重数据的结构化表示,数据的维度,但实际应用中过于注重数据结构不利于数据的使用,Pandas则注重数据使用,拥有非常明确有效的索引,通过索引对数据进行相关的分析和提取。
Pandas库的Series类型
Series类型由一组数据及与之相关的数据索引组成。
Series要求每一个数据都有一个索引,要么由pandas生成自动索引,要么生成自定义索引
Series类型可以由如下类型创建:
- Python列表
- 标量值
- Python字典
- ndarray数组
- 其他函数
Series类型的基本操作
Series类型包括index和values两部分,操作类似ndarray和python字典类型。
Series类型的操作类似ndarray类型:
- 索引方法相同,采用[]
- NumPy中运算和操作可用于Series类型
- 可以通过自定义索引的列表进行切片
- 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片。
Series类型本身是索引和值组成的类型,对它进行切片和运算都是生成Series类型,如果进行索引则于ndarray一样是数值
Series类型的操作类似Python字典类型
- 通过自定义索引访问
- 保留字in操作
- 使用.get()方法
Series类型对齐操作
Series类型在运算中会自动对齐不同索引的数据
NumPy只关心数据的维度,所以运算是数据的维度之间的运算;Series类型拥有索引,所以关心的是数据基于索引的运算,所以运算的更为精确
Series类型的name属性
Series对象和所以都可以有一个名字,存储在属性.name中
Series类型的修改
Series对象可以随时修改并即刻生效
Series类型总结
Series是一维带“标签”的数组
Series基本操作类似ndarray和字典,根据索引对齐。
Pandas库的DataFrame类型
DataFrame类型是一个:
- 表格型的数据类型,每列值类型可以不同
- 它既有行索引、也有列索引,行索引叫index(axis=0),列索引叫column(axis=1)
- 它常用于表达二维数据,但也可以表达多维数据
DataFrame可以由如下类型创建:
- 二维ndarray对象
- 由一维ndarray、列表、字典、元组或Series构成的字典
- Series类型
- 其他DataFrame类型
Pandas库的数据类型操作
要改变(删除,重排,增加)Series和DataFrame对象,我们可以使用如下方法
- 对于增加或重排:重新索引
- 删除:drop
重新索引
.reindex()
能够改变或重排Series和DataFrame索引.refindex(index=None,columns=None,...)
的参数:参数 | 说明 |
index,columns | 新的行列自定义索引 |
fill_value | 重新索引中,用于填充缺失位置的值 |
method | 填充方法,ffill当前值向前填充,bfill向后填充,指定 fill_value 的填充方法是当前位置前面的值填充还是后面的值填充 |
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指定行或列索引,默认操作0轴元素,因为Series对象只有0轴Pandas库的数据类型运算
算术运算法则
算术运算根据:
- 行列索引,补齐后运算,运算默认产生浮点数
- 补齐时缺项填充NaN(空值)
- 二维和一维,一维和零维间为广播运算
- 采用+-*/符号进行的二元运算产生新的对象
四则运算的方法形式:
方法 | 说明 |
.add(d,**argws) | 类型间加法运算,可选参数 |
.sub(d,**argws) | 类型间减法运算,可选参数 |
.mul(d,**argws) | 类型间乘法运算,可选参数 |
.div(d,**argws) | 类型间除法运算,可选参数 |
fill_value参数替代NaN,替代后参与运算
比较运算法则
比较运算:
- 只能比较相同索引的元素,不进行补齐
- 二维和一维、一维和零维间为广播运算
- 采用> < >= <= == != 等符号进行的二元运算产生布尔对象
比较运算的同维度运算,尺寸要一致,否则报错
- 作者:铃溪
- 链接:https://lingxi.mozzai.top/article/0d354491-bc5e-45d4-92d0-bade2a8003d0
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。