結局、
df.gropby(['index_col']).agg({'col1':list, 'col2':'last', 'col3':'last'...
という感じで求めるものは得られたんだけど、
col2以降を全部列挙しないといけないのがいかにも見苦しい

リストにしたいcol1だけ明示して、残りは全部'last' みたいに書けない?