python - 我如何计算有多少项目出现一次、两次、三次……?
问题描述
我有一个数据框df:
number
123
123
123
456
456
789
111
111
111
...
我想知道有多少项出现 X 次。
输出应该是这样的:
X times | count
3 | 2 (123 + 111 appear 3 times and are 2 numbers)
2 | 1 (456 appears 2 times but only 1 number)
1 | 1 (111 appear 1 time but only 1 number)
解决方案
df1 = (df['number'].value_counts()
.value_counts()
.rename_axis('X times')
.reset_index(name='count'))
print (df1)
X times count
0 3 2
1 2 1
2 1 1
替代双GroupBy.size
:
s = df.groupby('number').size()
df1 = (s.groupby(s).size()
.rename_axis('X times')
.reset_index(name='count'))
print (df1)
X times count
0 1 1
1 2 1
2 3 2
或组合,谢谢@Ch3steR:
df1 = (df.groupby('number')
.size()
.value_counts()
.rename_axis('X times')
.reset_index(name='count'))
推荐阅读
- python - 工人的 Heroku Procfile:python
- python - 如何在 python pandas 中读取包含字典的 .csv 文件?
- ios - UIButton 标题标签文本未使用情节提要或以编程方式更改
- javascript - Gatsby 外部 JS 文件中的构造函数中的变量
- c - 采用 char 数组和 2 个索引的函数;交换这些索引中的字符
- sql-server - 如何通过报表管理器从可用值中设置默认值
- spring - Spring Boot - Thymeleaf - 新项目不起作用
- javascript - 更新数组中对象的值
- python - 将 Flask 部署到 AWS 失败,requirement.txt 返回非零退出状态 1
- javascript - 使用 App 部署 Heroku 有超过 1 个运行命令