Используйте stack () и unstack (), чтобы преобразовать его.
df = df.set_index(['Month','Key']).stack().unstack(level=0).reset_index()
df = df.drop('level_1', axis=1)
df.columns = ['Key','Month_1','Month_2','Month_3']
df
Key Month_1 Month_2 Month_3
0 1 123 456 789
1 2 111 222 333