やりたいこと
表1のように定刻[変更]が同じがある時がありますので、
表2のように1行にまとめたいです。
Pandasのgroupbyを使って、やって見ましたが、実現したい結果
と上手くいかないです。
コードには何がいけないか。
もしくは他に簡単な方法がありましたら、教えていただけると嬉しいです。
お手数ですが、よろしくお願い致します・
表1.csv
定刻[変更],出発地,経由地,航空会社,便名,機種,ターミナル,運航状況 00:15[ - ],マニラ,,フィリピン航空,PR0424,321,T3,欠航 05:00[05:06],ロサンゼルス,,ANA,NH0105,77N,T3,到着済み 05:00[05:06],ロサンゼルス,,ユナイテッド航空,UA7983,77N,T3,到着済み 05:00[ - ],サンフランシスコ,,ANA,NH0107,78I,T3,欠航
実現した処理の結果
今回はロサンゼルス定刻[変更]が同じ場合、
表2のように1行にまとめて、カンマ区切りもしくは空白で記載したいです。
表2.csv
定刻[変更],出発地,経由地,航空会社,便名,機種,ターミナル,運航状況 00:15[ - ],マニラ,,フィリピン航空,PR0424,321,T3,欠航 05:00[05:06],ロサンゼルス,,ANA ユナイテッド航空,NH0105 UA7983,77N,T3,到着済み 05:00[ - ],サンフランシスコ,,ANA,NH0107,78I,T3,欠航
現在のdf_afterの結果は1行でまとめておりますが、
上記のように実現したい処理にならないです。
機種,ターミナル,運航状況の行などの行が重複されます。
またなぜか経由地のセルに0.0として表示されます。
定刻[変更] 出発地 経由地 航空会社 便名 機種 ターミナル 運航状況 0 00:15[ - ] マニラ 0.0 フィリピン航空 PR0424 321 T3 欠航 1 05:00[ - ] サンフランシスコ 0.0 ANA NH0107 78I T3 欠航 2 05:00[05:06] ロサンゼルスロサンゼルス 0.0 ANAユナイテッド航空 NH0105UA7983 77N77N T3T3 到着済み到着済み
コード
import pandas as pd #ファイル読み込み df = pd.read_csv(r"test.csv") print(df) # #データフレーム # df = pd.DataFrame(df1) # print(df) #参考ページ #https://qiita.com/propella/items/a9a32b878c77222630ae # a=df.groupby(['定刻[変更]','出発地','経由地','航空会社','便名','機種']).mean() # print(a) #After df_after = df.groupby('定刻[変更]').apply(lambda x: x.sum()).drop('定刻[変更]',axis=1).reset_index() print(df_after)
回答1件
あなたの回答
tips
プレビュー