ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame のネストされたリストを別の行に展開するにはどうすればよいですか?

Pandas DataFrame のネストされたリストを別の行に展開するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-17 02:38:25568ブラウズ

How Can I Expand Nested Lists in Pandas DataFrames into Separate Rows?

Pandas DataFrames のネストされたリストの解明: 行拡張

Pandas データフレームでデータを操作するとき、リストを含む列が発生する可能性があります。複数の値。分析と操作を容易にするために、これらのリストを個別の行に変換する必要があります。 「ロングフォーミング」または「行拡張」として知られるこのプロセスにより、各リスト要素が独自の行を占有することができます。

これを実現するために、Pandas は .explode() と呼ばれる専用のメソッドを提供します。 、バージョン 0.25 で導入されました。このメソッドは、指定されたリストを含む列を一連の行にシームレスに変換し、各要素が独立した行になります。

実装:

を使用するには.explode() メソッドでは、展開したい列名を指定するだけです。デフォルトでは、他のすべての列の値を保持しながら、列内の各要素に新しい行を作成します。

たとえば、値のリストを含む「samples」列を含むデータフレームを考えてみましょう。

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

.explode() を適用するmethod:

df.explode('samples')

結果は次のデータフレームになります:

   subject  trial_num  sample
0        1          1    0.57
1        1          1   -0.83
2        1          1    1.44
3        1          2   -0.01
4        1          2    1.13
5        1          2    0.36
6        2          1   -0.08
7        2          1   -4.22
8        2          1   -2.05
9        2          2    0.72
10       2          2    0.79
11       2          2    0.53

ご覧のとおり、各リスト要素には独自の行が含まれています。このメソッドはリストを効率的に展開しますが、一度に 1 つの列に対して展開することに注意してください。

追加の考慮事項:

  • .explode() メソッドは、リストとスカラー値の両方を含む混合列を処理し、空のリストと NaN が確実に含まれるようにします。値は適切に保持されます。
  • データフレームにリストを含む列が複数ある場合は、ネストされた .explode() 呼び出しを使用して、列を 1 つずつ展開できます。
  • If特定の列の順序を指定したい場合は、呼び出し後に手動で列の順序を再調整できます。 .explode().
  • 通常の整数インデックスを取得するには、.reset_index(drop=True) を使用してインデックスをリセットすることをお勧めします。

以上がPandas DataFrame のネストされたリストを別の行に展開するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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