首頁 > 後端開發 > Python教學 > Pandas `s.replace` 真的是替換系列中值的最佳方法嗎?

Pandas `s.replace` 真的是替換系列中值的最佳方法嗎?

Mary-Kate Olsen
發布: 2024-11-16 15:37:03
原創
515 人瀏覽過

Is Pandas `s.replace` Really the Best Way to Replace Values in a Series?

Pandas 系列中基於字典的高效值替換

透過字典取代pandas 系列中的值(s.replace(d))這是一項常見的任務,不幸的是,效率可能很低。本文研究了 s.replace 緩慢的原因,並探討了提高性能的替代方法。

s.replace 效率低下

s.replace 表現緩慢的主要原因是它處理邊緣情況和需要額外處理的罕見情況。這種開銷會顯著影響執行時間,尤其是對於大型資料集。

替代方法

要提高效能,如果所有序列值都滿足,請考慮使用 s.map(d)在字典鍵中找到。然而,該方法的適用性受到限制。或者,對於僅映射一小部分值的情況,請考慮以下方法之一:

  • 一般情況:

    • 使用s.map(d) 如果大於5% 的值被映射。
    • 使用s.map(d).fillna(s['A']).astype(int) 如果大於 5% 的值被映射。
  • 很少值在字典中:

    • 使用s.rep lace(d).

基準測試

基準測試證實了s.mapping 相對於s.replace 對於大型資料庫的效能優勢具有不同價值的資料集

說明

s.replace 的速度變慢歸因於其廣泛的處理,其中包括將字典轉換為列表、檢查嵌套字典和迭代通過鍵和值的列表。相比之下,s.map 更有效率,因為它專注於使用從字典的鍵到系列值的最佳化路徑進行直接值映射。

以上是Pandas `s.replace` 真的是替換系列中值的最佳方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板