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

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

Susan Sarandon
リリース: 2024-11-17 16:01:02
オリジナル
397 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート