ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の複数のリスト列を効率的にネスト解除する方法
大規模な Pandas DataFrame で複数のリスト列のネストを解除する (展開とも呼ばれる) ことは、特にデータセットのサイズはかなり大きいです。この課題に対処するために、さまざまな Pandas バージョンに対応する 2 つの効率的なメソッドを検討します。
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 中国語 Web サイトの他の関連記事を参照してください。