How To Do I Groupby, Count And Then Plot A Bar Chart In Pandas?
I have a Pandas dataframe that looks like the following. year month class ---- ----- ----- 2015 1 1 2015 1 1 2015 1 2 2015 1 2 ... I want to be able t
Solution 1:
A groupby
-unstack
should do the trick:
Data
df = pd.DataFrame([[2015, 1, 1],
[2015, 1, 1],
[2015, 1, 2],
[2015, 1, 2],
[2015, 1, 2],
[2015, 2, 1],
[2015, 2, 1],
[2015, 2, 1],
[2015, 2, 2],
[2015, 2, 2]], columns = ['year', 'month', 'class'])
Solution
df_gb = df.groupby(['year', 'month', 'class']).size().unstack(level=2)
Output
df_gb.plot(kind = 'bar')
Solution 2:
We can also use DataFrame.pivot_table
:
df.pivot_table(index=['year','month'],columns='class',aggfunc='size').plot(kind='bar')
or
df.pivot_table(index='class',columns=['year','month'],aggfunc='size').plot(kind='bar')
Post a Comment for "How To Do I Groupby, Count And Then Plot A Bar Chart In Pandas?"