首頁 >後端開發 >Python教學 >如何實作條件列建立:探索 Pandas DataFrame 中的 If-Elif-Else?

如何實作條件列建立:探索 Pandas DataFrame 中的 If-Elif-Else?

Susan Sarandon
Susan Sarandon原創
2024-10-20 06:52:29820瀏覽

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