首页 >后端开发 >Python教程 >如何实现条件列创建:探索 Pandas DataFrame 中的 If-Elif-Else?

如何实现条件列创建:探索 Pandas DataFrame 中的 If-Elif-Else?

Susan Sarandon
Susan Sarandon原创
2024-10-20 06:52:29819浏览

How to Achieve Conditional Column Creation: Exploring If-Elif-Else in Pandas DataFrame?

创建条件列:Pandas 中的 If-Elif-Else

给定的问题要求将新列添加到 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>

此方法可读且易于实现,但它不是矢量化的,可能会导致大型数据集的性能问题。

矢量化解决方案

为了提高效率,建议使用 NumPy 的 np.where 函数的矢量化方法:

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

此操作在 DataFrame 上按元素执行条件选择,从而产生一个新列与所需的值。

与基于函数的方法相比,这种矢量化方法提供了显着的性能优势。它还允许更简洁和可读地实现条件标准。

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

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