DataFrame 的指數級緩慢串聯
處理大型資料集時,通常將資料分成較小的區塊以進行高效處理。然而,隨著區塊數量的增加,將這些區塊重新連接在一起可能會變得指數級變慢。
速度變慢的原因
速度變慢歸因於 pd.concat() 的方式已實施。當在循環中呼叫時,它會為每個串聯建立一個新的 DataFrame,從而導致大量資料複製。這種複製成本隨著迭代次數呈現二次方成長,導致處理時間呈指數成長。
避免速度下降
要規避此效能瓶頸,至關重要以避免在 for 迴圈內呼叫 pd.concat() 。相反,將區塊儲存在列表中,並在處理後立即將它們連接起來:
super_x = [] for i, df_chunk in enumerate(df_list): [x, y] = preprocess_data(df_chunk) super_x.append(x) super_x = pd.concat(super_x, axis=0)
使用這種方法,複製僅發生一次,從而顯著減少總體處理時間。
以上是為什麼連接許多 Pandas DataFrame 的速度呈指數級緩慢,我該如何避免它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!