建立條件列: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中文網其他相關文章!