前提・実現したいこと
Pythonを用いて旅行データを1行にまとめたデータを作りたいです.
例
|旅行者|出発地|目的地|
|1|大阪|東京|
|1|東京|北海道|
|1|北海道|大阪|
|2|大阪|福岡|
|2|福岡|大阪|
というデータを
|旅行者|出発地|経由地1|経由地2|到着地|
|1|0|0|0|0|
|2|0|0|0│0|
というデータフレームを作り
|旅行者|出発地|経由地1|経由地2|到着地|
|1|大阪|東京|北海道|大阪|
|2|大阪|福岡|0│大阪|
といった旅行者1人の旅行を1行にまとめたいです.
発生している問題・エラーメッセージ
|旅行者|出発地|経由地1|経由地2|到着地|
|0|大阪|大阪|大阪|大阪|
|0|大阪|大阪|大阪|大阪|
という形になっておりうまくできません
該当のソースコード
コード import pandas as pd df=pd.read_excel('旅行データ') df1=pd.DataFrame({'旅行者':[0,0], '出発地':[0,0],'訪問地1':[0,0],'訪問地2':[0,0],'到着地':[0,0]},index=[0,1],dtype=str) for i in range(5): for j in range(2): for k in range(1,5): df1.at[df1.index[j],df1.columns[k]]=df.at[df.index[i],'目的地'] if df.at[df.index[i],'旅行者']==df.at[df.index[i+1],'旅行者']: df1.at[df1.index[j],df1.columns[k+1]]=df.at[df.index[i+1],'目的地'] if df.at[df.index[i],'旅行者']!=df.at[df.index[i+1],'サンプルID']: df1.at[df1.index[j+1],df1.columns[k]]=df.at[df.index[i+1],'旅行者']
補足情報(FW/ツールのバージョンなど)
Anconda Navigatorでjupyter Notebookを使用しています.