首页 > 后端开发 > Python教程 > 如何在 Pandas 中创建 If-Else-Else 条件列?

如何在 Pandas 中创建 If-Else-Else 条件列?

Mary-Kate Olsen
发布: 2024-10-20 06:55:02
原创
595 人浏览过

How to Create an If-Else-Else Conditional Column in Pandas?

在 Pandas 中创建 If-Else-Else 条件列

在处理数据时,通常需要根据特定条件创建新列状况。 Pandas 提供了一种简化此过程的语法,允许您一步定义 if-elif-else 条件。

为了说明这一点,让我们考虑以下 DataFrame:

    A    B
a   2    2
b   3    1
c   1    3
登录后复制

我们想要创建遵循以下条件的新列“C”:

  • 如果 A == B,则将 C 设置为 0
  • 如果 A > B,将 C 设置为 1
  • 如果 A
  • B,将 C 设置为 -1

使用自定义函数

一种方法是定义一个自定义函数来评估每一行的这些条件:
<code class="python">def my_function(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1</code>
登录后复制

然后可以使用 apply() 方法将此函数应用于 DataFrame 的每一行,创建“C”列:
<code class="python">df['C'] = df.apply(my_function, axis=1)</code>
登录后复制

向量化方法

为了获得更高效的矢量化解决方案,我们可以使用 NumPy 的 np.where 函数以及 pandas 的逻辑索引:
<code class="python">df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] >  df['B'], 1, -1))</code>
登录后复制

这消除了对自定义函数的需要,从而导致更快、更优化的解决方案。

带有“C”列的结果 DataFrame:
    A    B    C
a   2    2    0
b   3    1    1
c   1    3   -1
登录后复制

以上是如何在 Pandas 中创建 If-Else-Else 条件列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板