python数据科学(七) Pandas(二) 数据取值与选择
本文最后更新于:2023年4月15日 晚上
嫌一直记笔记效率太低, 之后的pandas内容都在本地的jupyter notebook
上敲代码和markdown说明
python数据科学(七) Pandas(二) 数据取值与选择
1 | Series数据选择方法
Series对象与一维Numpy数组和标准python字典在很多方面都一样
1-1 | 将Series看作字典
- 键值对的映射
1 |
|
- 字典表达式检测键值
1 |
|
- 通过字典语法调整数据
1 |
|
1-2 | 将Series看作一维数组
同样支持花哨索引, 掩码等等, 具备和Numpy数组一样的数组数据选择功能
显式索引切片和隐式索引切片的区别
1 |
|
二者的区别: 显式索引切片为左闭右闭区间, 隐式索引切片为左闭右开区间
1-3 | 索引器: loc, iloc和ix
切片和取值的习惯用法经常会导致混乱, 比如Series是显式整数索引, 那么data[1]
这样的取值为显式索引而data[1:2]
这样的切片为隐式索引, 由于整数索引易造成混淆, python提供了索引器属性来作为取值的方法, 它们不是Series对象的函数方法, 而是暴露切片接口的属性
loc索引器
loc属性表示取值和切片都是显式的
1 |
|
iloc索引器
iloc属性表示取值和切片都是隐式的 (从0开始, 左闭右开区间)
1 |
|
ix索引器
主要适用于DataFrame对象, 下文详述
Python代码的设计原则之一就是“显式优于隐式”, 使用loc和iloc让代码更容易维护, 可读性更高, 使用loc和iloc可以让代码阅读和理解更容易, 也可以避免因误用索引/切片而产生的bug
2 | DataFrame数据选择方法
2-1 | 将DataFrame看作字典
- 使用字典形式获取数据
1 |
|
- 使用属性形式获取纯字符串列名数据
1 |
|
注意: 属性形式获取只能是纯字符串列名, 且不能与方法名重名
2-2 | 将DataFrame看作二维数组
通过values
属性可以查看数组数据
1 |
|
同样地, 使用loc和iloc处理显式索引和隐式索引
1 |
|
使用ix索引器处理可以达到混合的效果:
1 |
|
ix对于整数的处理同Series中介绍的一样, 也容易发生混淆
在loc索引器中使用掩码和花哨索引:
1 |
|
其他取值方法
- 如果对单个标签取值则选择列, 对多个标签切片则选择行
1 |
|
- 掩码操作可以直接对每一行进行过滤而不需要loc索引器
1 |
|