如何在 Python 的 Pandas DataFrame 中执行条件列创建?

Linda Hamilton
发布: 2024-10-20 06:48:29
原创
663 人浏览过

How to Perform Conditional Column Creation in Python's Pandas DataFrames?

在 Python 中基于条件逻辑创建列

在使用 Pandas DataFrame 时,我们经常遇到需要创建新列的场景基于现有列之间的条件检查的列。这可以使用带有嵌套条件的 np.where 函数来实现。

为了说明这一点,请考虑以下 DataFrame:

<code class="python">import pandas as pd

df = pd.DataFrame({
    "A": [2, 3, 1],
    "B": [2, 1, 3]
})</code>
登录后复制

我们希望根据以下条件创建一个新列 C :

  • 如果 A 等于 B,则 C 应该为 0。
  • 如果 A 大于 B,C 应该为 1。
  • 如果 A 小于 B ,C 应该是 -1。

使用自定义函数

一种方法是创建一个实现条件逻辑的自定义函数并将其应用于DataFrame:

<code class="python">def f(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1

df['C'] = df.apply(f, axis=1)</code>
登录后复制

使用 np.where

或者,我们可以使用 np.where 函数直接为新列赋值:

<code class="python">df['C'] = np.where(df['A'] == df['B'], 0, np.where(df['A'] > df['B'], 1, -1))</code>
登录后复制

这种方法是矢量化的,对于大型数据集更有效。

结果:

两种方法都会产生以下结果:

<code class="python">print(df)

   A  B  C
0  2  2  0
1  3  1  1
2  1  3 -1</code>
登录后复制

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

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!