ホームページ > バックエンド開発 > Python チュートリアル > Pandas のリストの列を複数の列に分割するにはどうすればよいですか?

Pandas のリストの列を複数の列に分割するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-19 18:02:10
オリジナル
287 人が閲覧しました

How to Split a Pandas Column of Lists into Multiple Columns?

リストの Pandas 列を複数の列に分割する

問題

リストを含む列を持つ Pandas DataFrame を考えます:

import pandas as pd

df = pd.DataFrame({"teams": [[["SF", "NYG"]] for _ in range(7)]})

       teams
0  [[SF, NYG]]
1  [[SF, NYG]]
2  [[SF, NYG]]
3  [[SF, NYG]]
4  [[SF, NYG]]
5  [[SF, NYG]]
6  [[SF, NYG]]
ログイン後にコピー

この列を 2 つの個別の列に変換するには、以下に従ってください手順:

解決策

  1. to_list() を使用して値のリストを作成する:
import pandas as pd

d1 = {'teams': [['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],
                ['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG'],['SF', 'NYG']]}
df2 = pd.DataFrame(d1)
print (df2)
       teams
0  [SF, NYG]
1  [SF, NYG]
2  [SF, NYG]
3  [SF, NYG]
4  [SF, NYG]
5  [SF, NYG]
6  [SF, NYG]
ログイン後にコピー
  1. 次を使用して列を抽出します割り当て:

必要な列を含む新しい DataFrame を割り当てます:

df2[['team1','team2']] = pd.DataFrame(df2.teams.tolist(), index= df2.index)
print (df2)
       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
ログイン後にコピー
  1. 結果の新しい DataFrame を作成します:

または、新しい DataFrame を作成することもできます個別に:

df3 = pd.DataFrame(df2['teams'].to_list(), columns=['team1','team2'])
print (df3)
  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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート