リストを含む列を持つ 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 つの個別の列に変換するには、以下に従ってください手順:
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]
必要な列を含む新しい 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
または、新しい 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 サイトの他の関連記事を参照してください。