how do I pivot grouby-then-apply-per-column output?

When I run this code:

df['cqt_max'] = df.apply(lambda row: np.amax(row['cqt'], axis=1), axis=1)
df.groupby('class')['cqt_max'].apply(lambda row: np.mean(row))

I get this output:

class
air_conditioner     [-10.776191, -9.191735, -7.919828, -8.072542, ...
car_horn            [0.1938453, 0.62229663, 0.73002106, 1.0808494,...
children_playing    [-10.962815, -10.5444145, -10.476532, -10.7168...
dog_bark            [-14.399248, -13.956197, -13.91334, -14.204609...
drilling            [-10.900762, -10.741612, -10.455714, -10.71143...
engine_idling       [3.6802604, 4.111199, 4.673173, 6.1516066, 7.1...
gun_shot            [1.4482762, 1.5542057, 1.6977521, 1.4311185, 1...
jackhammer          [-20.880972, -19.913477, -18.727133, -18.46656...
siren               [-8.673098, -8.52913, -8.3177, -7.9699936, -7....
street_music        [-8.061809, -7.3074565, -7.2396207, -7.6240115...
Name: cqt_max, dtype: object

That output is weird; it has just a single column. I don't understand the groupby output. What I really want is for the "class" to become the table column names (in a DataFrame) and the numbers in each list to fill in the rows of the table. How can I make that pivot?