pythonでgroupbyしようとしたらコケた

KeyError: ('big_code', 'occurred at index 25')

こんなエラーです。


なんかかなりシンプルな内容ですが、用途としてはこんな感じでした。

merge_df = a_df.merge(b_df, how='left', on='code')\
 .groupby('big_code')

こんな感じでした。
これにmergeをもう1つ足そうとしたところ、そのあとのgroupbyでエラーに。

merge_df = a_df.merge(b_df, how='left', on='code')\
 .merge(c_df, how='left', on='code')\
 .groupby('big_code')

こうしたらエラーに。
原因はc_dfにもbig_codeが存在していて、両方に同じ名前がある場合は名称が変わるっていう仕様により、big_code自体がmerge_dfから居なくなる、という点でした。

suffixで指定できるそうなんですが、今回はデータが同じものが入ってるのは確定しているので、
そもそもonで繋げちゃうことに。

merge_df = a_df.merge(b_df, how='left', on='code')\
 .merge(c_df, how='left', on=['code', 'big_code'])\
 .groupby('big_code')


参考:
https://pystyle.info/pandas-merge/#outline__2_4