ホームページ >バックエンド開発 >Python チュートリアル >リストのような列を DataFrame 内の別々の行に展開するにはどうすればよいですか?
質問:
DataFrame を変換するにはどうすればよいですか?リストを含むセルをそのリスト内の値ごとに個別の行に分割しますか?
例:
次の DataFrame について考えてみましょう:
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | ['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia'] |
私たちの目標これは、nearest_neighbors 列を「分解」し、リスト内の値ごとに新しい行を作成することです。
答え:
パンダ バージョン 0.25 以降では、explode( ) メソッドは、この操作を簡単にします:
import pandas as pd df = (pd.DataFrame({'name': ['A.J. Price'] * 3, 'opponent': ['76ers', 'blazers', 'bobcats'], 'nearest_neighbors': [['Zach LaVine', 'Jeremy Lin', 'Nate Robinson', 'Isaia']] * 3}) .set_index(['name', 'opponent'])) df.explode('nearest_neighbors')
出力:
name | opponent | nearest_neighbors |
---|---|---|
A.J. Price | 76ers | Zach LaVine |
A.J. Price | 76ers | Jeremy Lin |
A.J. Price | 76ers | Nate Robinson |
A.J. Price | 76ers | Isaia |
A.J. Price | blazers | Zach LaVine |
A.J. Price | blazers | Jeremy Lin |
A.J. Price | blazers | Nate Robinson |
A.J. Price | blazers | Isaia |
A.J. Price | bobcats | Zach LaVine |
A.J. Price | bobcats | Jeremy Lin |
A.J. Price | bobcats | Nate Robinson |
A.J. Price | bobcats | Isaia |
explode() メソッドは、nearest_neighbors 列の各リストを効果的に展開し、値ごとに新しい行を作成します。
以上がリストのような列を DataFrame 内の別々の行に展開するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。