如何有效解除 Pandas DataFrame 中多個清單列的嵌套?

Susan Sarandon
發布: 2024-11-17 16:01:02
原創
312 人瀏覽過

How to Efficiently Unnest Multiple List Columns in Pandas DataFrames?

在Pandas DataFrame 中有效取消嵌套多個列表列

在大型Pandas DataFrame 中取消嵌套(也稱為爆炸)多個列表列可能是一項計算密集型任務,尤其是當資料集規模很大。為了應對這項挑戰,我們探索了兩種適合不同 Pandas 版本的有效方法。

Pandas >= 1.3

對於 Pandas 1.3 及更高版本,DataFrame.explode 方法提供了一個簡單的方法同時爆炸多個列。此方法要求所選列中的所有值都具有相同大小的清單。只要將列名傳遞給explode方法,如下所示:

df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
登入後複製

Pandas >= 0.25

對於較舊的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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板