首頁  >  文章  >  後端開發  >  哪種 Pandas 方法優於基於字典的系列值替換?

哪種 Pandas 方法優於基於字典的系列值替換?

Patricia Arquette
Patricia Arquette原創
2024-11-15 20:01:02905瀏覽

Which Pandas Method Outperforms for Dictionary-Based Value Replacement in Series?

用字典取代Pandas 系列中的值的效能注意事項

用字典取代Pandas 系列中的字典一直是個持續關注的字典問題社區。雖然建議的方法是 s.replace(d) 或 s.map(d),但效能可能會根據資料集的特徵而有很大差異。

基準測試

為了說明效能差異,讓我們考慮一個包含 0 到 999 之間的隨機整數的 DataFrame df。

一般情況

如果我們建立一個字典d 將值對應到他們的後繼者(例如,d = {i: i 1 for i in range(1000)}),我們觀察到:

最優方法選擇

基於在基準測試中,很明顯s.map 在這兩種情況下都表現優異:

  • 完整地圖:使用s.map(d) 來實現完整覆蓋。
  • 部分地圖(例如, 使用s.map(d).fillna(s['A']).astype(int) 填充任何缺失的值。

為什麼 s.replace 慢?

s.replace 比 s.map 進行更廣泛的操作。它涉及將字典轉換為列表,迭代它,並在執行替換之前檢查嵌套字典。

相較之下,s.map 只是檢查給定參數是字典還是系列,如果存在則將其轉換必要的。它根據索引有效地映射值。

替代選項

在效能至關重要的特定情況下:

  • 清單理解: 使用清單理解執行替換操作可能比s.map 稍快。
  • s.apply(pd.to_numeric): 此方法可以顯著提高效能以缺失或非數字資料取代值時。

結論

用字典取代Pandas 系列中的值的最佳選擇取決於以下因素例如DataFrame 的大小、字典中唯一值的數量以及映射的完整性。透過仔細考慮這些因素,開發人員可以針對其特定情況選擇最有效的方法。

以上是哪種 Pandas 方法優於基於字典的系列值替換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn