Pandas 使用者通常會遇到基於現有列建立新列的需要。用於此任務的兩種流行方法是 Pandas 的 apply 函數和 NumPy 的向量化。然而,這些方法之間的速度差異是一個尚未徹底研究的問題。
根據觀察和實驗,預期np.vectorize 明顯快於 df.apply,特別是對於較大的資料集。
效能差距的主要原因在於每種方法的本質。
df.apply 的工作原理是迭代 DataFrame 中的每一行並評估給定的函數。這涉及到 Pandas 系列物件的建立和操作,由於它們的索引、值和屬性,這些物件會帶來很大的開銷。
另一方面,np.vectorize 將輸入函數轉換為通用函數(ufunc )直接對 NumPy 陣列進行運算。這允許進行高度優化的向量化計算,並避免 Python 層級的循環。
該問題的實驗展示了 np.對 df.apply 進行向量化以適應不同的資料集大小。對於具有 100 萬行的 DataFrame,np.vectorize 的速度快了 25 倍以上。
雖然np.vectorize 通常更快,有一些重要的注意事項需要考慮:
以上是np.vectorize 與 Pandas apply:對於大型資料集,哪個更快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!