使用Python Pandas中的[ ]、loc和iloc按名称或索引选择行和列2025年3月6日 | 阅读 10 分钟 在 Pandas 中选择 DataFrame 的数据行和列称为索引。可以选择所有行和一定数量的列,所有行和特定数量的列,或者每行和每列的特定数量。索引的另一个名称是子集选择。 在 Pandas 中创建 DataFrame 以选择行和列Pandas 可以通过多种方式按索引选择列。在本节中,我们将讨论三种常用的技术来实现此目的。
创建元组列表此示例中的代码定义了一个包含员工姓名、年龄、城市和薪水的元组列表。例如,一个包含“姓名”、“年龄”、“城市”和“工资”列名的元组集合。 说明 此 Python 程序采用一个包含员工数据的元组列表,并使用 panda 模块从中生成一个名为 'df' 的 DataFrame 对象。DataFrame 的列标记为“姓名”、“年龄”、“城市”和“工资”。每个元组代表一个员工的详细信息,包括姓名、年龄、城市和收入。该应用程序导入 panda 库,指定员工数据元组列表,并使用 pd.DataFrame() 函数构建 DataFrame 对象,然后显示 DataFrame。 输出
Name Age City Salary
0 Sandy 28 Boston 20000
1 Stacey 32 Florida 25000
2 Jack 25 New York 40000
3 Stacey 32 Florida 35000
4 Stacey 32 Florida 30000
5 Stacey 32 New York 20000
6 Jack 40 Long Island 24000
7 Robin 32 Florida 70000
Pandas DataFrame:使用 [] 按名称选择列您可以使用 [] 函数通过说出其名称来选择一列。有几种方法可以利用 [] 函数按名称或索引在 Pandas DataFrame 中选择行和列。以下是一些常用的方法。
Pandas 选择单列的列示例:此示例代码使用方括号表示法从 DataFrame(称为“df”)中提取“City”列,并将其分配给变量“result”。最后,显示提取的列或 Series。 说明 此 Python 代码片段中的 [] 运算符选择 DataFrame 列“City”,结果保存在变量“result”中。所选列列出了与每个员工信息相关的城市。最后使用 ' result' 变量显示 DataFrame 中指定的员工的城市。 输出 0 Boston 1 Florida 2 New York 3 Florida 4 Florida 5 New York 6 Long Island 7 Florida Name: City, dtype: object Pandas 选择多列的列示例 此示例代码采用原始 DataFrame `df`,并选择并生成一个新 DataFrame `result`,其中仅包含“Name”、“Age”和“Salary”列。然后显示新 DataFrame。 说明 此 Python 代码示例展示了如何通过使用 [] 运算符从 DataFrame “df”中选择多个列(“Name”、“Age”和“Salary”)。变量 ' result' 保存所选列的值,结果 DataFrame 显示员工的姓名、年龄和工资。 输出
Name Age Salary
0 Sandy 28 20000
1 Stacey 32 25000
2 Jack 25 40000
3 Stacey 32 35000
4 Stacey 32 30000
5 Stacey 32 20000
6 Jack 40 24000
7 Robin 32 70000
Pandas 选择特定列值的行示例 此示例代码输出 DataFrame,包括来自佛罗里达州的员工,在过滤并选择 DataFrame `df` 中 'City' 列等于 'Florida' 的行之后。 说明 此 Python 代码将结果存储在变量 "Florida_employees" 中,并过滤 DataFrame "df" 以选择 "City" 列值为 "Florida" 的行。然后在此过滤后的 DataFrame 中打印来自佛罗里达州的员工的信息,包括他们的姓名、年龄、城市和工资。 输出 Name Age City Salary 1 Stacey 32 Florida 25000 3 Stacey 32 Florida 35000 4 Stacey 32 Florida 30000 7 Robin 32 Florida 70000 基于工资条件选择行示例 使用一个名为 "employees" 的集合,示例代码生成了一个工资超过 30000 的员工列表。然后输出名为 "high_salary_employees" 的结果列表。 说明 元组中的第四个元素,即员工的工资,必须超过 30,000 美元,Python 代码才能过滤员工列表。创建的 'high_salary_employees' 列表包含满足此要求的员工信息元组。输出显示工资超过 30000 的员工的姓名、年龄、城镇和收入。 输出
[('Jack,' 25, 'New York,' 40000), ('Stacey,' 32, 'Florida,' 35000), ('Robin,' 32, 'Florida,' 70000)]
使用 loc 在 Pandas DataFrame 中按名称选择行数据使用行和列的标签进行选择。loc[] 方法。它可以选择行和列的子集。此函数可以以多种方式使用。
选择单行示例 此示例代码使用 .loc[] 运算符选择并显示索引值为 "Sandy" 的行,此前已将 "Name" 列设置为名为 "df" 的 DataFrame 的索引。 说明 此 Python 代码示例展示了如何使用 inplace=True 选项的 set_index() 方法将 DataFrame 替换为原位,并将 "Name" 列设置为索引。接下来,它使用 .loc[] 访问器将基于索引值 "Sandy" 选择的单行分配给变量 result。最后,它使用 .loc[] 访问器显示所选行的信息,如年龄、城市和工资。 输出 Age 28 City Boston Salary 20000 Name: Sandy, dtype: object 选择多行示例 此示例代码使用 .loc[] 运算符选择并显示索引值为 "Sandy" 和 "Robin" 的行,此前已将 "Name" 列设置为名为 "df" 的 DataFrame 的索引。 说明 此代码使用带 inplace=True 参数的 set_index() 函数就地执行操作并将 "Name" 列设置为 DataFrame df 的索引。然后将结果存储在 result 变量中。它首先使用 .loc[] 访问器根据索引标签 "Sandy" 和 "Robin" 选择某些行。最后,它使用 .loc[] 访问器显示所选行的信息,如年龄、城市和工资。 输出
Age City Salary
Name
Sandy 28 Boston 20000
Robin 32 Florida 70000
选择多行和特定列语法 示例 此示例代码将 "Name" 列设置为索引,然后选择 DataFrame 中名为 "Sandy" 和 "Robin" 的行的 "City" 和 "Salary" 列,显示结果。 说明 此代码段首先使用 set_index() 函数和 inplace=True 将 DataFrame df 的 "Name" 列设置为索引,从而就地修改 DataFrame。然后,仅使用指定的 "City" 和 "Salary" 列进行选择,它使用 .loc[] 访问器选择所有行(:)。最后,它显示包含所有行所需列的生成的 DataFrame。 输出
City Salary
Name
Sandy Boston 20000
Robin Florida 70000
选择所有行和某些特定列要选择所有行和所需列集,我们使用单个冒号 [:],如下所示 语法 示例 此示例代码将 "Name" 列设置为索引,并将 "City" 和 "Salary" 列提取到一个名为 "result" 的新 DataFrame 中。 说明 此代码段首先使用 set_index() 函数和 inplace=True 将 DataFrame df 的 "Name" 列设置为索引,从而就地修改 DataFrame。然后,仅使用指定的 "City" 和 "Salary" 列进行选择,它使用 .loc[] 访问器选择所有行(:)。最后,它显示包含所有行所需列的生成的 DataFrame。每一行代表一名员工,并显示该员工的城市和工资详细信息。 输出
City Salary
Name
Sandy Boston 20000
Stacey Florida 25000
Jack New York 40000
Stacey Florida 35000
Stacey Florida 30000
Stacey New York 20000
Jack Long Island 24000
Robin Florida 70000
在 Pandas DataFrame 中使用 iloc 选择行和列基于位置的选择通过 iloc[] 进行。虽然它只需要整数值来进行选择,但它与 loc[] 索引器相当。此函数可以以多种方式使用。
选择单行示例 在此示例代码中,使用基于整数位置的索引 .iloc[],选择 DataFrame (df) 的第三行并将其分配给变量 "result"。最后一行打印或返回所选行。 说明 此代码使用 .iloc[] 索引器根据其整数位置选择 DataFrame df 中的单行。这里,它选择了第二行(索引位置 3),并显示了相关信息,包括员工姓名、年龄、城市和薪水。 输出 Name Jack Age 25 City New York Salary 40000 Name: 2, dtype: object 选择多行示例 此示例代码使用 .iloc[] 运算符从名为 "df" 的 DataFrame 中选择特定行(索引 2、3 和 5),然后将结果行分配给变量 "result"。最后一行显示 DataFrame 中的所选行。 说明 此示例代码展示了如何使用 .iloc[] 索引器根据整数位置从 DataFrame df 中选择多行。这里,它选择了索引位置 2、3 和 5 处的行,并显示了相关员工的姓名、年龄、城市和收入。 输出
Name Age City Salary
2 Jack 25 New York 40000
3 Stacey 32 Florida 35000
5 Stacey 32 New York 20000
选择多行和某些特定列示例 此示例代码创建一个名为 `result` 的新 DataFrame,显示所选数据,并使用 `.iloc[]` 运算符从名为 `df` 的 DataFrame 中选择特定行(2、3 和 5)和列(0 和 1)。 说明 此示例代码展示了如何使用 .iloc[] 索引器根据整数位置从 DataFrame df 中选择多行。这里,它选择了索引位置 2、3 和 5 处的行,并显示了相关员工的姓名、年龄、城市和收入。 输出
Name Age
2 Jack 25
3 Stacey 32
5 Stacey 32
选择所有行和某些特定列示例 此示例代码使用 `.iloc[]` 运算符选择 DataFrame `df` 的所有行,同时仅保留位置 0 和 1 的列。然后将结果存储在变量 `result` 中。最后,显示更新后的 DataFrame。 说明 此小程序通过其整数位置仅指定几列,但使用 .iloc[] 索引器从 DataFrame df 中选择所有行。这里,它选择了位置 0 和 1 处的“姓名”和“年龄”列。结果 DataFrame 显示了每行所选列的员工姓名和年龄。 输出
Name Age
0 Sandy 28
1 Stacey 32
2 Jack 25
3 Stacey 32
4 Stacey 32
5 Stacey 32
6 Jack 40
7 Robin 32
|
我们请求您订阅我们的新闻通讯以获取最新更新。