python - 如何根据另一列统计DataFrame中某个值出现的次数?
问题描述
我有一个 Pandas DataFrame,它有两列:
item1 label
0 a 0
1 a 1
2 b 0
3 c 0
4 a 1
5 a 0
6 b 0
综上,该栏目一共有三种item1
。即,a
,b
和c
。该label
列的条目是0
或的值1
。
我想要做的是接收一个 DataFrame ,我可以在其中计算有多少条目item1
具有label
value 1
。使用上面的玩具示例,所需的 DataFrame 将类似于:
item1 label
0 a 2
1 b 0
2 c 0
我怎样才能实现这样的目标?
我尝试使用以下代码行:
df[['item1', 'label']].groupby('item1').sum()['label']
但结果是 Pandas 系列,并且还显示了一些不需要的行为和属性。
解决方案
groupby
不需要过滤之前的列,但您可以groupby
为聚合指定列之后sum
。对于 2 列 DataFrames 添加as_index=False
参数:
df = df.groupby('item1', as_index=False)['label'].sum()
替代方法是使用Series.reset_index
:
df = df.groupby('item1')['label'].sum().reset_index()
print (df)
item1 label
0 a 2
1 b 0
2 c 0
推荐阅读
- java - 将字符串替换为 html 邮件模板
- c# - 比较 Sno 并显示完整的信息表 SQL Server Table
- javascript - ESLINT 无限循环
- javascript - 如何有条件地检测“当前周”的渲染天数?
- google-cloud-platform - 试用结束后访问 Google Cloud Storage
- javascript - 在 slideUp 动画结束之前再次触发函数时动画出现故障
- ruby-on-rails - Poltergeist 使用 CSS 选择器检测到另一个元素
- php - PHP 严格标准在不覆盖超类方法的子类上抛出错误
- android - 部分 TextView 可通过链接点击
- java - Hibernate 5 未设置参数号 2 的值