ホームページ >バックエンド開発 >Python チュートリアル >入れ子になったリストを Pandas データフレーム内の個々の行に分解するにはどうすればよいですか?
Pandas データフレームでネストされたリストを個々の行に展開する
パンダによるデータ操作の領域では、データを再構築する必要が生じることがよくあります。ネストされたリストとして個々の行に保存されます。 「nearest_neighbors」列に値のリストが含まれるデータフレームを考えてみましょう。目的は、これらのリストを「展開」し、リスト内の値ごとに個別の行を作成することです。
Pandas 0.25 は、explode() メソッドによるリストの展開を簡略化します
パンダの場合バージョン 0.25 以降では、explode() メソッドの導入により、列内のリストの展開が大幅に簡素化されました。その機能を実証するために、サンプル データフレームを再作成してみましょう。
import pandas as pd # Original DataFrame df = pd.DataFrame({'name': ['A.J. Price'] * 3, 'opponent': ['76ers', 'blazers', 'bobcats'], 'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3}) # Set the index for easier reference df = df.set_index(['name', 'opponent'])
ネストされたリストの展開
explode() メソッドを使用すると、「最近傍」を分割できます。リスト要素ごとに列を作成し、値ごとに個別の行を作成します。
# Explode the list-like column df_exploded = df.explode('nearest_neighbors')
展開後の出力
print(df_exploded)
nearest_neighbors name opponent A.J. Price 76ers Zach LaVine 76ers Jeremy Lin 76ers Nate Robinson 76ers Isaia blazers Zach LaVine blazers Jeremy Lin blazers Nate Robinson blazers Isaia bobcats Zach LaVine bobcats Jeremy Lin bobcats Nate Robinson bobcats Isaia
ご覧のとおり、各値は"nearest_neighbors" 列のリストのリストは、対応する相手インデックス内の別の行として表されるようになりました。
リスト展開のその他のメソッド
以前の pandas バージョンの場合0.25 では、列内のリストを展開する別のアプローチがありました。これらのメソッドでは、適用、ラムダ、リスト内包表記などの操作を組み合わせる必要がありました。ただし、explode() メソッドの導入により、これらのより複雑なアプローチは必要なくなりました。
以上が入れ子になったリストを Pandas データフレーム内の個々の行に分解するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。