[英]Pandas groupby two columns and plot
我有一個這樣的數據框:
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()
如何獲得每個類別的性別數?
import numpy as np
import pandas as pd
df = pd.DataFrame({'category': list('XYZXY'),
'NotUsed': range(5,10),
'sex': list('mfmff')})
category NotUsed sex
0 X 5 m
1 Y 6 f
2 Z 7 m
3 X 8 f
4 Y 9 f
pd.crosstab(df['category'],df['sex']).plot.bar()
(df.groupby(['sex','category'])['B']
.count().unstack('sex').plot.bar())
pd.pivot_table(df, values = 'B', index = 'category',
columns = 'sex',aggfunc ='count').plot.bar()
import seaborn as sns
sns.countplot(data=df,x='category',hue='sex')
or,
sns.catplot(data=df,kind='count',x='category',hue='sex')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.