在这篇文章中,我们将使用iloc和loc来处理数据。更具体地说,我们将通过iloc和loc例子来学习切片和索引。
一旦我们将一个数据集加载为Pandas dataframe,我们通常希望根据某些条件开始访问该数据的特定部分。例如,如果我们的数据集包含比较不同实验组的实验结果,我们可能需要分别计算每个实验组的描述性统计。
更多有关对Pandas dataframes进行分组的内容
如何在Python中进行描述性统计
根据某些标准选择数据的特定行和列的过程通常称为切片。
Pandas Dataframe
在我们学习如何使用loc和iloc之前,我们最好先了解一下Pandas dataframe对象是如何工作的。对于本索引和切片教程的特定目的,我们最好知道dataframe中的每个行和列都有一个数字——一个索引。
这种结构是带有数字索引的行和列结构,这意味着我们可以使用行号和列号来处理数据。这在我们准备使用Pandas loc和iloc方法的时候是非常有用的。
请参阅博文《使用Pandas和pyjanitor——了解一些简单的Python数据清理方法》。
Data
在下面的iloc和loc例子中,我们将使用两个数据集。这些数据集,在许多其他的RDataset中,可以在这里找到,但是下面的代码将把它们加载到Pandas dataframe中:
如果您有兴趣学习更多有关Pandas数据处理的知识,请查看以下文章:
如何将CSV文件读入Pandas
如何将Excel文件读入Pandas
将SPSS文件读入Pandas
使用Python和Pandas处理JSON文件
loc 和 iloc之间有什么不同?
在继续使用Pandas iloc和Pandas loc之前,我们将回答有关loc和iloc之间的区别的问题。
首先,.loc是一个基于标签的方法,而.iloc是一个基于整数的方法。这意味着当我们对dataframe进行切片时,loc将考虑索引的名称或标签。
Pandas loc 示例链接
例如,如果“case”在一个dataframe(例如,df)的索引中,那么df.loc['case']将导致第三行被选中。注意,在下面的loc和iloc例子中,我们将使用数据集中的第一列作为索引(参见第一个代码块)。
另一方面,Pandas .iloc会根据索引的位置进行切片。与.loc不同,.iloc的行为类似于常规的Python切片。也就是说,我们只需要指定位置索引数字,就会得到我们想要的切片。
例如,