What you want to do is to unstack your dataframe, and change the name of the columns.
You can do so by doing : 
df.unstack()
  .rename(columns = {
            "2016Q1" : "Season 1",
            "2016Q2" : "Season 2",
            "2016Q3" : "Season 3",
        })
You can find examples on the documentation about what unstack does, and how it is doing it. As for the rename method, it takes a mapping to convert your names from something to something else.
I didn't try to make your example work, but I took an example from the unstack documentation above.
index = pd.MultiIndex.from_tuples([('one', 'a'), ('one', 'b'),
                                   ('two', 'a'), ('two', 'b')])
df = pd.DataFrame( np.arange(1.0, 5.0), index=index, columns=['hi'])
print(df)
#         hi
# one a  1.0
#     b  2.0
# two a  3.0
#     b  4.0
df = df.unstack(level = -1)
       .rename(columns = {
            "a" : "Season 1",
            "b" : "Season 2"
        })
print(df)
#           hi         
#     Season 1 Season 2
# one      1.0      2.0
# two      3.0      4.0
There could be a better way to handle the "hi" above your DataFrame but you can just select it, and it'll disappear.
print( s['hi'] )
     Season 1  Season 2
one       1.0       2.0
two       3.0       4.0