在大型Pandas DataFrame 中取消嵌套(也稱為爆炸)多個列表列可能是一項計算密集型任務,尤其是當資料集規模很大。為了應對這項挑戰,我們探索了兩種適合不同 Pandas 版本的有效方法。
對於 Pandas 1.3 及更高版本,DataFrame.explode 方法提供了一個簡單的方法同時爆炸多個列。此方法要求所選列中的所有值都具有相同大小的清單。只要將列名傳遞給explode方法,如下所示:
df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
對於較舊的Pandas版本,我們可以在每列上使用Series.explode 。我們首先將不應該分解的列設為索引,然後在操作後重設索引。
df.set_index(['A']).apply(pd.Series.explode).reset_index()
兩種方法都提供了高效的效能,如下所示大型資料集上的計時:
%timeit df2.explode(['B', 'C', 'D', 'E']).reset_index(drop=True) %timeit df2.set_index(['A']).apply(pd.Series.explode).reset_index() # Pandas >= 1.3 (fastest) 2.59 ms ± 112 µs per loop # Pandas >= 0.25 1.27 ms ± 239 µs per loop
透過利用這些有效的方法,我們可以有效地在任意大小的Pandas DataFrame 中取消嵌套多個列表列,從而實現無縫資料分析和操作。
以上是如何有效解除 Pandas DataFrame 中多個清單列的嵌套?的詳細內容。更多資訊請關注PHP中文網其他相關文章!