Pandas では、リストの列を含む DataFrame を処理するのが困難になることがあります。リスト要素は別の行として表されます。ここで .explode() メソッドが登場します。
Pandas ≥ 0.25
Pandas バージョン 0.25 以降の場合、ゲームチェンジャーは .explode( ) 方法。リストのような列を個別の行に分解し、長い形式から広い形式に変換できます。
import pandas as pd # Sample DataFrame 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 using .explode() exploded_df = df.explode('samples') # Reset index to be monotonically increasing (optional) exploded_df = exploded_df.reset_index(drop=True) print(exploded_df) # Output: # 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 1 3 1.18 # 7 2 1 -0.08 # 8 2 1 -4.22 # 9 2 1 -2.05 # 10 2 2 0.72 # 11 2 2 0.79 # 12 2 2 0.53 # 13 2 3 0.4 # 14 2 3 -0.32 # 15 2 3 -0.13
.explode() は一度に 1 つの列に対して動作することに注意してください。混合型 (リストとスカラーなど) を含む列の場合、 .explode() は適切に動作し、空のリストと NaN を保持します。
以上がPandas の `.explode()` メソッドはどのようにしてリストベースの列を個別の行に変換できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。