计算熊猫列中每个唯一值的数量[重复]

Posted

技术标签:

【中文标题】计算熊猫列中每个唯一值的数量[重复]【英文标题】:Count number of each unique value in pandas column [duplicate] 【发布时间】:2021-08-03 18:11:47 【问题描述】:

我有一个这样的数据框:

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 人。有些是男性,有些是女性。我想得到一个数据框,它计算group 中每个组的男性人数和女性人数。

例如:

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

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

希望你能帮助我!

【问题讨论】:

【参考方案1】:

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

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

现在如果你打印result,你会得到:

Sex     female  male
group       
1       2       4
2       3       3

【讨论】:

【参考方案2】:

使用crosstab:

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

【讨论】:

非常感谢。两种解决方案都非常好:-)

以上是关于计算熊猫列中每个唯一值的数量[重复]的主要内容,如果未能解决你的问题,请参考以下文章