首页 >后端开发 >Python教程 >如何在 Python 的 Pandas DataFrame 中执行条件列创建?

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

Linda Hamilton
Linda Hamilton原创
2024-10-20 06:48:29751浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn