在 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 :
使用自定义函数
一种方法是创建一个实现条件逻辑的自定义函数并将其应用于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中文网其他相关文章!