过滤 Pandas DataFrame 中的行
Pandas 是 Python 中用于数据操作和分析的强大库。一个常见的任务是根据列值从 DataFrame 中选择行,类似于 SQL 的 SELECT * FROM table WHERE column_name = some_value。
本指南将引导您了解在 Pandas 中实现此目的的各种方法,从而轻松有效地过滤数据。无论您是初学者还是经验丰富的用户,这些提示都将提高您的数据处理技能。
命令 | 描述 |
---|---|
pd.DataFrame(data) | 从数据字典创建 DataFrame。 |
df[column_name] | 按名称访问 DataFrame 中的列。 |
df[condition] | 根据应用于列的条件过滤 DataFrame。 |
print(selected_rows) | 将 DataFrame 或其子集打印到控制台。 |
df[df['Age'] >df[df['Age'] > 25] | 选择“年龄”列值大于 25 的行。 |
df[df['City'] == 'Chicago'] | 选择“城市”列值等于“芝加哥”的行。 |
了解 Pandas 中的 DataFrame 行选择
提供的脚本演示了如何使用 Python 中的 Pandas 库根据列值从 DataFrame 中选择行。第一个脚本首先导入 Pandas 库 命令。然后,它使用数据字典创建一个示例 DataFrame,该字典使用以下命令转换为 DataFrame: 命令。然后,该脚本演示了两种行选择方法:使用以下命令选择“Age”列值大于 25 的行 ,并使用以下命令选择“城市”列值为“芝加哥”的行 df[df['City'] == 'Chicago']。这些过滤后的数据帧使用 函数显示选定的行。
第二个脚本遵循类似的结构,但使用不同的数据和选择标准。它创建一个包含产品信息的 DataFrame,包括“产品”、“价格”和“库存”列。选择“价格”小于或等于 200 的行
在 Pandas 中选择 DataFrame 行的高级技术
除了使用布尔索引的基本过滤之外,Pandas 还提供了根据列值选择行的高级技术。一种有效的方法是使用 函数,它允许您使用查询表达式过滤行,使语法更清晰且通常更直观。例如,不要使用 , 你可以写 。当处理更复杂的条件或列名包含空格时,此方法特别有用。此外, isin() 当您想要根据值列表过滤行时,该函数非常有用。例如,要选择“城市”列值为“芝加哥”或“纽约”的行,您可以使用 。
另一种技术涉及 和 索引器。这 索引器是基于标签的,允许您根据行标签和列名称选择行,而 iloc 基于整数位置,允许按行号和列号进行选择。这种灵活性对于根据应用于不同列的条件选择行特别有用。例如, 将返回年龄超过 25 岁的个人姓名。这些方法扩展了您的工具包,以有效处理和分析 Pandas 中的数据,提供更具可读性和可维护性的代码。
- 如何根据多个条件选择行?
- 您可以使用 函数或将条件与逻辑运算符组合,例如 和 。例如, df[(df['Age'] > 25) & (df['City'] == 'Chicago')]。
- 我可以根据值列表过滤行吗?
- 是的,使用 功能。例如, 。
- 有什么区别 和 ?
- 是基于标签的,而 是基于整数位置的。使用 带有行/列标签和 iloc 带有行/列索引。
- 如何在过滤行时选择特定列?
- 您可以使用 。例如, 。
- 选择行时如何处理缺失值?
- 使用 函数删除缺失值的行,或者 将它们替换为指定值。
- 我可以使用正则表达式来过滤行吗?
- 是的 函数与 参数允许您根据正则表达式模式过滤行。例如, 。
- 如何根据索引过滤行?
- 您可以使用 与索引名称。例如, 。
- 如果我的列名称包含空格或特殊字符怎么办?
- 使用 可以处理此类带反引号的列名的函数。例如, 。
关于 DataFrame 行选择技术的最终想法
根据 Pandas 中的列值从 DataFrame 中选择行是数据操作的一项关键技能。讨论的各种方法,包括布尔索引, , ,以及基于标签和基于整数位置的索引 和 iloc,提供有效过滤数据的强大工具。掌握这些技术可以实现更好的数据分析和更清晰、更易于维护的代码。