Python Pandas 索引和选择数据
在这一章中,我们将讨论如何切片和切块日期以及通常获取pandas对象的子集。
Python和NumPy的索引操作符“[]”和属性操作符“.”快速而轻松地访问Pandas数据结构的各种用例。然而,由于要访问的数据类型事先未知,直接使用标准操作符在优化方面存在一些局限性。对于生产代码,我们建议您利用本章中介绍的优化的pandas数据访问方法。
Pandas现在支持三种类型的多轴索引;这三种类型在下表中列出 –
序号 | 索引和描述 |
---|---|
1 | .loc() 基于标签 |
2 | .iloc() 基于整数 |
3 | .ix() 标签和整数都能用 |
.loc()
Pandas提供了各种纯粹基于标签的索引方法。在切片时,起始边界也被包含在内。整数是有效的标签,但它们指的是标签,而不是位置。
.loc() 具有多个访问方法,如−
- 单个标量标签
- 标签列表
- 切片对象
- 布尔数组
loc 通过’,’分隔两个单个/列表/范围运算符。第一个表示行,第二个表示列。
示例1
它的 输出结果如下 –
示例2
它的 输出结果 如下:
示例3
其 输出 如下所示−
示例4
它的输出是如下的:
示例5
它的 输出 如下:
.iloc()
Pandas提供了各种方法来实现纯整数索引。与Python和Numpy一样,这些方法都是从0开始的索引。
各种访问方法如下所示:
- 整数
- 整数列表
- 一段数值范围
示例1
它的 输出 如下所示−
示例2
其输出结果如下:
示例3
它的 输出 如下:
.ix()
除了纯标签和整数基础外,Pandas还提供了一种混合方法来使用.ix()操作符进行选择和子集化对象。
示例1
它的 输出 如下:
示例2
它的 输出 如下:
符号的使用
使用多轴索引从Pandas对象中获取值使用以下符号表示:
对象 | 索引器 | 返回类型 |
---|---|---|
Series(序列) | s.loc[indexer] | 标量值 |
DataFrame(数据帧) | df.loc[row_index,col_index] | Series对象 |
Panel(面板) | p.loc[item_index,major_index, minor_index] | p.loc[item_index,major_index, minor_index] |
注意—.iloc()和.ix() 应用相同的索引选项和返回值。
现在让我们看看如何在DataFrame对象上执行每个操作。我们将使用基本索引运算符 ‘[ ]’ −
示例1
它的 输出 如下:
注意 - 我们可以通过[ ]将一个值列表传递给选择那些列。
示例2
它的 输出 如下:
示例3
它的 输出 如下:
属性访问
可以使用属性运算符’.’来选择列。
示例
这个输出为