我有一个这样的数据框:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.DataFrame({'category': list('XYZXY'), 'B': range(5,10),'sex': list('mfmff')})
我想根据“类别”列中的类别绘制男性或女性性别计数。
我试过了:
df.groupby(['category','sex'])['category','sex'].count().plot.bar()
如何获得每个类别的性别计数?
使用groupby + unstack:
df.groupby(['sex','category'])['B'].count().unstack('sex').plot.bar()
使用数据透视表:
pd.pivot_table(df, values = 'B', index = 'category',
columns = 'sex',aggfunc ='count').plot.bar()
使用seaborn:
import seaborn as sns
sns.countplot(data=df,x='category',hue='sex')
or,
sns.catplot(data=df,kind='count',x='category',hue='sex')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句