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

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

【讨论】:

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

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

如何将熊猫数据框中每列中唯一值的数量绘制为条形图?

熊猫计算列中每个值的出现次数

熊猫在巨大的csv的每一列中找到独特元素的数量

如何使用熊猫从另一个数据框 B 的列中删除包含特定数量值的数据框 A 中的行?

熊猫数据框:在固定其他列的列中提取具有特定标准/条件最小值的数据[重复]

随着时间的推移,使用熊猫计算滚动窗口中唯一 id 的特定条件事件的数量