熊猫groupby两列和图

astro123:

我有一个这样的数据框:

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()

但这给出了: 在此处输入图片说明

如何获得每个类别的性别计数?

Poudel:

使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章