Используйте Series.unstack
для изменения формы, затем конвертируйте столбцы в CategoricalIndex
и сортируйте для правильного порядка и последнего графика по DataFrame.plot
:
months = ['January','February','March','April',
'May','June','July','August',
'September','October','November','December']
#your groupby code
#s = df.groupby(...)
df = s.unstack()
df.columns = pd.CategoricalIndex(df.columns, ordered=True, categories=months)
df = df.sort_index(axis=1)
print (df)
month January February March April
name
x 82.0 88.0 48.0 80.0
y 80.0 76.0 82.0 77.0
z NaN 81.0 85.0 86.0
Если хотите поменять местами столбцы и значения индекса:
months = ['January','February','March','April',
'May','June','July','August',
'September','October','November','December']
#your groupby code
#s = df.groupby(...)
df = s.unstack(0)
df.index = pd.CategoricalIndex(df.index, ordered=True, categories=months)
df = df.sort_index()
print (df)
name x y z
month
January 82.0 80.0 NaN
February 88.0 76.0 81.0
March 48.0 82.0 85.0
April 80.0 77.0 86.0
df.plot()