處理時pandas DataFrames,有時需要「取消嵌套」或「爆炸」欄位包含多行清單。然而,這可能是一個計算成本很高的操作,尤其是對於大型資料集。
對於 pandas 1.3 及更高版本,有一個內建函數稱為DataFrame.explode 允許您同時取消嵌套多個列。此函數要求所有清單列具有相同的長度。使用方法:
df.explode(['B', 'C', 'D', 'E']).reset_index(drop=True)
df.set_index(['A']).apply(pd.Series.explode).reset_index()
兩種方法都提供了高效的解決方案,set_index 和explode 比DataFrame.explode 稍快。下表顯示了效能比較:
Method | Time (seconds) |
---|---|
DataFrame.explode | 0.00259 |
Set index and explode | 0.00127 |
Stacking approach | 0.120 |
雖然這個問題最初被標記為重複,但它特別強調需要一種可以處理大型問題的有效方法資料集。重複問題的答案未能充分滿足此要求。
以上是如何有效解除 Pandas DataFrame 中多個清單列的嵌套?的詳細內容。更多資訊請關注PHP中文網其他相關文章!