I am trying to make a grouped bar chart in python for a dataframe that looks like this:
age | sex | target |
---|---|---|
25 | m | 0 |
33 | f | 0 |
20 | m | 1 |
37 | f | 1 |
40 | f | 1 |
[this is what I want it to look like. One chart for sex and another chart for age. ][1] [1]: https://i.stack.imgur.com/NgFUE.jpg
This is what I've tried so far but it didn't return what I wanted:
df.groupby('sex')[target].value_counts().plot.bar(legend=True)
Thanks.
CodePudding user response:
The value_counts()
alone will not suffice, you will need to unstack()
it as well. Below is the updated code.
df=pd.DataFrame({'age':[25,33,20,37,40], 'sex':['m','f','m','f','f'], 'target':[0,0,1,1,1]})
ax=df.groupby('sex')['target'].value_counts().unstack().plot.bar(legend=True, rot=0)
ax.set_yticks([0,1,2])
Plot