ホームページ >バックエンド開発 >Python チュートリアル >Pandas のリストの列を複数の列に効率的に分割するにはどうすればよいですか?
リストの Pandas 列を複数の列に分割する
データ探索では、多くの場合、DataFrame 列をより管理しやすい形式に再構築する必要があります。このようなシナリオの 1 つは、リストを含む列を複数の列に分割することです。
チーム名のリストを保持する、「teams」という名前の 1 つの列を持つ DataFrame を考えてみましょう。
import pandas as pd df = pd.DataFrame({ "teams": [[ "SF", "NYG" ] for _ in range(7)] })
これを分割するには「teams」列を「team1」と「team2」の 2 つの列に分割すると、to_list によって作成されたリストを使用して DataFrame コンストラクターを活用できます。
オプション 1: 既存の DataFrame の変更
to_list メソッドを使用すると、「チーム」リストをリストのリストに変換できます。新しい「team1」列と「team2」列を作成します:
df[['team1', 'team2']] = pd.DataFrame(df['teams'].tolist(), index=df.index)
この操作元の DataFrame を新しい列で変更します:
teams team1 team2 0 [SF, NYG] SF NYG 1 [SF, NYG] SF NYG 2 [SF, NYG] SF NYG 3 [SF, NYG] SF NYG 4 [SF, NYG] SF NYG 5 [SF, NYG] SF NYG 6 [SF, NYG] SF NYG
オプション 2: 新しい DataFrame の作成
または、必要に応じて、列の分割:
df3 = pd.DataFrame( df['teams'].tolist(), columns=['team1', 'team2'] )
この操作により、別の列が作成されます。 DataFrame:
team1 team2 0 SF NYG 1 SF NYG 2 SF NYG 3 SF NYG 4 SF NYG 5 SF NYG 6 SF NYG
この分割を実現するために apply(pd.Series) 関数を適用すると大幅に時間がかかるため、大規模なデータセットには推奨されないことに注意してください。
以上がPandas のリストの列を複数の列に効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。