繁体   English   中英

pandas 列中每个唯一值的计数[重复]

[英]Count number of each unique value in pandas column [duplicate]

我有一个像这样的 dataframe:

df = pd.DataFrame(index=[1,2,3,4,5,6,7,8,9,10,11,12])
df['group'] = [1,1,1,1,1,1,2,2,2,2,2,2]
df['Sex'] = ['male', 'female','male', 'male','male', 'female','male', 'male','male', 'female','female', 'female',]

df

    group   Sex
1      1    male
2      1    female
3      1    male
4      1    male
5      1    male
6      1    female
7      2    male
8      2    male
9      2    male
10     2    female
11     2    female
12     2    female

每组有6个人。 有些是男性,有些是女性。 我想得到一个 dataframe ,它计算组中每个group的男性人数和女性人数。

例如:

  • 第 1 组 --> 4 男 2 女
  • 第 2 组 --> 3 男 3 女

结果如何呈现的细节对我来说并不重要。 我曾尝试使用 groupby,但没有 function (count, sum, mean, nunique ...) 告诉我男性和女性之间的比例。

希望你能帮我!

使用交叉表

pd.crosstab(df['group'], df['Sex'])
Sex    female  male
group              
1           2     4
2           3     3

使用groupby()方法、 value_counts()方法和unstack()方法:

result=df.groupby('group')['Sex'].value_counts().unstack()

现在,如果您打印result ,您将得到:

Sex     female  male
group       
1       2       4
2       3       3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM