ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の複数のリスト列を効率的にネスト解除する方法

Pandas DataFrame の複数のリスト列を効率的にネスト解除する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-17 16:01:02393ブラウズ

How to Efficiently Unnest Multiple List Columns in Pandas DataFrames?

Pandas DataFrame の複数のリスト列のネストを効率的に解除する

大規模な Pandas DataFrame で複数のリスト列のネストを解除する (展開とも呼ばれる) ことは、特にデータセットのサイズはかなり大きいです。この課題に対処するために、さまざまな Pandas バージョンに対応する 2 つの効率的なメソッドを検討します。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。