用字典取代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.replace 慢?
s.replace 比 s.map 進行更廣泛的操作。它涉及將字典轉換為列表,迭代它,並在執行替換之前檢查嵌套字典。
相較之下,s.map 只是檢查給定參數是字典還是系列,如果存在則將其轉換必要的。它根據索引有效地映射值。
替代選項
在效能至關重要的特定情況下:
結論
用字典取代Pandas 系列中的值的最佳選擇取決於以下因素例如DataFrame 的大小、字典中唯一值的數量以及映射的完整性。透過仔細考慮這些因素,開發人員可以針對其特定情況選擇最有效的方法。
以上是哪種 Pandas 方法優於基於字典的系列值替換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!