df1 = df.set_index('id').groupby(level=0).apply(lambda df: df.reset_index(
    drop=True)).unstack().sort_index(axis=1, level=1)
df1.columns = ['{}{}'.format(x[0], int(x[1]) + 1) for x in df1.columns]
Combine multiple time-series rows into one row with Pandas