在 Pandas 中应用 If-Else 条件语句的 5 种方法2025年3月3日 | 阅读 5 分钟 Pandas 是 Python 中一种强大的数据处理工具包,通常用于数据分析和准备。 它的优势之一是能够将条件逻辑应用于 DataFrame 组件,这使客户能够添加额外的列、过滤数据并根据指定的条件进行复杂的更改。 在本教程中,我们将研究在 Pandas 中使用 if-else 条件语句的五种不同方法,每种方法都有实际示例。 了解在 Pandas 中应用 If-Else 条件语句的不同方法在以下部分中,我们将讨论在 Pandas 中应用 if-else 条件语句的不同方法。 其中一些方法如下:
现在让我们在一些示例的帮助下详细讨论这些方法。 使用 numpy.where() 方法应用 If-Else 条件语句NumPy 库的 'np.where()' 工作可能是在 Pandas DataFrames 中利用条件逻辑的强大工具。 它使您能够向量化条件的应用程序,使其更有效且更容易转换。 np.where(condition, [x, y]) 是一种从 x 或 y 中检索基于条件的组件的工作。 如果条件为真,则它从 x 中获取组件;否则,它从 y 中获取组件。 此方法对于数组或 DataFrame 列上的向量化操作特别有用,因为它逐个元素地运行,并且由于其 C 实现而非常高效。 示例假设我们有一个包含学生分数的 DataFrame df,并且想要添加一个新列结果,如果学生的分数等于或高于 50,则将其归类为“通过”,否则归类为“失败”。 代码 输出 student score result 0 Amy 85 Pass 1 Fred 40 Fail 2 Carl 75 Pass 3 Don 30 Fail 4 Eva 90 Pass 使用 apply() 方法应用 If-Else 条件语句Pandas .apply() 方法允许您沿着 DataFrame 的轴之一(行或列)应用工作。 此方法用途广泛,可用于包含多个列的更复杂的场景。 .apply() 是一种能够为 DataFrame 或 Series 的每个组件分配自定义功能的强大方法。 该函数可以是 lambda 函数或预定义函数。 当连接到 DataFrame 时,axis 参数允许您定义函数应该按行连接还是按列连接。 此方法最适合扩展简单向量化操作的更现代的更改。 示例继续我们的学生分数示例,让我们使用自定义函数根据分数给出字母等级。 代码 输出 student score result grade 0 Amy 85 Pass B 1 Fred 40 Fail F 2 Carl 75 Pass C 3 Don 30 Fail F 4 Eva 90 Pass A 使用 loc[] 索引器应用 If-Else 条件语句Pandas 中的 .loc[] 索引器是用于根据标签选择和更改数据的有效工具。 它还允许您将条件逻辑应用于 DataFrame 的特定子集。 .loc[] 主要用于基于标签的索引和切片。 它可以用于通过标签或布尔数组访问一组行和列。 当与条件语句结合使用时,loc[] 成为就地修改 DataFrame 项目的有效工具。 这种方法高效且易于理解,特别是对于大型 DataFrames,因为它允许直接访问和编辑项目。 示例让我们使用不同的阈值,使用 .loc[] 将分数分类为“高”、“中”和“低”。 代码 输出 student score result grade category 0 Amy 85 Pass B High 1 Fred 40 Fail F Low 2 Carl 75 Pass C Medium 3 Don 30 Fail F Low 4 Eva 90 Pass A High 使用 map() 方法应用 If-Else 条件语句.map() 技术可用于根据输入对应关系(字典、Series 或函数)映射 Series 值。 当映射很简单时,这是一种使用条件逻辑的便捷方法。 .map() 用于将 Series 中的每个值替换为可以使用函数、字典或 Series 提供的另一个值。 此方法对于执行简单的值更改和替换特别有用。 当与字典一起使用时,map() 可以实现直接查找,使其成为简单映射的理想选择。 示例假设我们有一个成绩和绩点之间的映射,并且想要向我们的 DataFrame 添加一个新列 grade_point。 代码 输出 student score result grade category grade_point 0 Amy 85 Pass B High 3 1 Fred 40 Fail F Low 0 2 Carl 75 Pass C Medium 2 3 Don 30 Fail F Low 0 4 Eva 90 Pass A High 4 使用 mask() 方法应用 If-Else 条件语句Pandas .mask() 方法替换条件为 True 的值。 它实际上是 where() 方法的逆方法,如果条件为假,则替换值。 .mask() 用于在条件为真时替换 DataFrame 或 Series 中的值。 它非常适合屏蔽掉特定值并将它们替换为所需的值。 此函数与 np.where() 类似,不同之处在于,您不是根据标准选择值,而是屏蔽并替换它们。 示例假设我们希望在学生分数低于 50 分时使用“匿名”匿名化学生姓名。 代码 输出 student score result grade category grade_point 0 Amy 85 Pass B High 3 1 Anonymous 40 Fail F Low 0 2 Carl 75 Pass C Medium 2 3 Anonymous 30 Fail F Low 0 4 Eva 90 Pass A High 4 结论在 Pandas 中使用 if-else 条件表达式是数据操作和分析的一项基本能力。 每种方法(无论是利用 'np.where()' 进行向量化操作,利用 '.apply()' 进行更复杂的行式或列式更改,利用 '.loc[]' 进行协调和熟练的修改,利用 '.map()' 进行基本值映射,还是利用 '.mask()' 用于根据条件替换特定值)都有其自身的偏好和最佳使用场景。 理解和掌握这些方法可以提高您管理广泛的数据处理就业能力,从而产生更有效、可读和可行的代码。 无论您是新手还是经验丰富的数据科学家,这些方法都将帮助您自信而精确地处理 Pandas 中的条件逻辑。 下一个主题Pandas 面试 |
我们请求您订阅我们的新闻通讯以获取最新更新。