- Python+Office:轻松实现Python办公自动化
- 王国平
- 592字
- 2025-02-18 05:44:23
3.3 数据的切片
在解决各种实际问题的过程中,经常会遇到从某个对象中提取部分数据的情况,切片操作可以完成这个任务。本节将会介绍Python如何提取一列或多列数据、一行或多行数据、指定区域的数据等,使用的数据文件为“2020年第二学期学生考试成绩.xls”。
3.3.1 提取一列或多列数据
在介绍数据切片之前,需要创建一个由4名学生学习成绩构成的数据集,代码如下:

运行上述代码,创建的数据集如下所示。

可以提取某一列数据,代码如下:

代码输出结果如下所示。

可以提取某几列连续和不连续的数据,如提取两列数据,代码如下:

代码输出结果如下所示。

3.3.2 提取一行或多行数据
可以使用loc()函数和iloc()函数获取特定行的数据。其中,iloc()函数是通过行号获取数据的,而loc()函数则是通过行标签索引数据的。例如,提取第2行数据,代码如下:

代码输出结果如下所示。

也可以提取几行数据,需要注意的是,行号也是从0开始的,区间是左闭右开。例如,提取第3行~第5行的数据,代码如下:

代码输出结果如下所示。

如果不指定iloc()函数的行索引的初始值,则默认从0开始,即第1行,代码如下:

代码输出结果如下所示。

3.3.3 提取指定区域的数据
使用iloc()函数还可以提取指定区域的数据。例如,提取第3行~第5行的数据、第2列~第4列的数据,代码如下:

代码输出结果如下所示。

此外,如果不指定区域中列索引的初始值,那么从第1列开始,代码如下:

代码输出结果如下所示。

同理,如果不指定列索引的结束值,那么提取后面的所有列。