创建条件列: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中文网其他相关文章!