索引和选择 Pandas DataFrame2025年3月17日 | 阅读 7 分钟 Pandas 是 Python 中用于数据分析的最重要的库之一。首先,Pandas 中的 DataFrame 就像一个表格或一个具有行和列的二维数组。它是一个可变的和异构的数据结构。我们将行和列称为轴。 Pandas 中提供了许多函数来操作 DataFrames 以进行分析。我们可以通过多种方式创建 DataFrame,但使用的函数是 要使用此函数或库中的任何函数,首先,我们必须使用以下方法导入库 在本教程中,我们在一个 Excel 表格 "painters.xlsx" 中创建了一个表格,其中包含关于世界上 20 位最伟大的画家的信息。 ![]() 现在,这是一个 Python 代码,用于将此表格创建为 Pandas DataFrame 输出 ![]() 本教程的标题是“索引和选择 DataFrame”。 就像我们使用从 0 到长度 - 1 的索引来切片字符串一样,我们也可以从现有的 DataFrame 访问、复制和创建新的 DataFrames。本教程将解释所有这些方法。
1. [] 和 .[] 称为索引运算符,. 称为属性运算符 在 Pandas 中。这些运算符用于索引的基本形式和查看 DataFrame 的不同子集。 使用属性运算符(.) 选择列
在我们的 Painters 表中 输出 ![]() 请注意,当我们尝试访问“Greatest Artpiece”列时会引发语法错误,因为有空格。 如果我们要访问该属性,可以使用 getattr(DataFrame, column_name) 函数。 输出 ![]() 使用索引运算符选择列 我们需要将列的名称传递给运算符,但这里对列名中的任何空格没有限制 请注意,列的名称必须用引号括起来传递。 输出 ![]()
输出 ![]() 选择行 使用切片运算符,我们可以使用相同的索引运算符选择 DataFrame 的行。 切片的语法与任何其他可迭代对象的语法相同 start: 起始索引/行位置(包含) stop: 停止切片的位置(不包含) step: 选择行之间的间隔 输出 ![]() 如果我们在创建时使用行标签,我们也可以使用它们。 这是一个例子 输出 ![]()
以下是关于索引运算符的结论要点
到目前为止,我们无法同时选择 DataFrame 的行和列。 Pandas 中有两个专门用于选择和子集 DataFrames 的函数。 这些函数具有清晰的功能。 我们现在将了解它们。 2. DataFrame.iloc语法 行和列都必须是位置而不是标签,并且这些位置可以按如下方式给出
这是我们将要修改的表格 ![]() 请注意,第 0 行和第 0 列分别称为第 1 行和第 1 列。
语法 代码 输出 ![]()
语法 代码 输出 ![]()
语法 代码 输出 ![]()
语法 代码 输出 ![]() ![]() 3. DataFrame.loc[rows, columns]正如我们在上面看到的,iloc[] 在位置上工作,而不是在标签上。 相反,loc[] 在标签上工作,而不是在位置上。 所有其他功能都相同。 行和列都必须是标签,并且这些标签可以按如下方式给出
注意:在行或列标签上使用切片运算符时,结束标签将与起始标签一起包含在内,就像我们使用索引运算符 - [] 进行切片一样这是我们将要修改的表格 ![]()
语法 代码 输出 ![]()
语法 代码 输出 ![]()
语法 代码 输出 ![]()
语法 代码 输出 ![]() ![]() 观察当我们给出 行:第 1 行、第 2 行和第 3 行 列:打印了“死亡”、“最伟大的艺术品”和“国籍”,这意味着还包括最后一行和最后一列。 带条件 到目前为止,我们使用位置编号或标签从 DataFrame 中选择数据。 我们还可以根据我们需要使用的两种方式 - loc[] 和索引运算符来选择数据 以下是一些重要的要点 1. 我们可以使用任何布尔运算符,但在这里,我们必须使用 2. 我们可以使用任意数量的条件,但每个条件都必须用括号括起来。 输出 ![]() 3. 假设我们要打印所有出生于 1800 年之后的画家。 我们需要检查“出生”列 df["出生"]>1800 这就是条件。 如果我们在检查条件后打印它,我们将获得具有 True 和 False 的列。 现在,如果我们想打印行,我们需要将条件传递给 df[]: 输出 ![]() 4. 使用 loc[],我们可以直接将条件传递给运算符,就像我们传递给 df[] 一样。 我们可以通过使用 loc[] 获得的额外优势是,我们可以使用切片选择列。 这里有一个例子 输出 ![]() 4. head() 和 tail()这两种方法主要用于从大量数据中查看数据样本。 Head() 用于从开头获取样本,tail() 用于从结尾获取样本。 如果我们不传递任何参数,head() 打印 DataFrame 的前五行,而 tail() 打印 DataFrame 的最后五行。 我们可以通过提及我们需要的行数来传递一个参数。 语法 代码 输出 ![]() 下一个主题如何在 Pandas 中删除行 |
我们请求您订阅我们的新闻通讯以获取最新更新。