透過字典高效率地取代Pandas 系列中的值
經常透過字典取代Pandas 系列中的值(s.replace(d))遇到效能瓶頸,使其比列表理解方法慢得多。雖然 s.map(d) 提供了可接受的效能,但它僅適用於在字典鍵中找到所有系列值的情況。
了解效能差距
主要原因s.replace 緩慢的原因在於其多方面的功能。與 s.map 不同,它處理通常需要更細緻處理的邊緣情況和罕見情況。
最佳方式當所有值都可以映射時使用s.map(d)。
使用 s.map(d)。 fillna(s['A']).astype(int) 當超過 5% 的值可以被映射時。
字典中的幾個值:
基準測試結果
廣泛的測試證實性能差異:s.replace:1.98秒
s.map:84.3毫秒
列表理解:134 毫秒
s.map。 fillna.astype: 111 毫秒
列表理解: 243 毫秒將字典轉換為列表
迭代列表並檢查嵌套字典將鍵和值的迭代器傳遞給替換函數以上是為什麼 Pandas 系列「s.replace」透過字典替換值比「s.map」慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!