pandas - 有条件的其他列的分组和计数
问题描述
我有一个数据框:
id value
A 1
A 0
A 1
B 1
B 1
C 0
我正在尝试按 id 分组并计算 value 列中的出现次数,以便我算不上。一个和没有。每组0个:
id No. of 1's No of 0's
A 2 1
B 1 0
C 0 1
我知道一种分组和使用聚合函数的方法
df.groupby('id').agg({'value': xxx})
但我认为应该有更好的方法来做到这一点。
解决方案
你需要unstack
和add_prefix
/suffix
df.groupby(["id", "value"])["value"].count().unstack(1).fillna(0).add_prefix(
"counts_of_"
).add_suffix("'s")
value counts_of_0's counts_of_1's
id
A 1.0 2.0
B 0.0 2.0
C 1.0 0.0
推荐阅读
- python - 如何在带有两个 DataFrame 的 pandas 中使用替换?
- wpf - 其他元素折叠时 WPF UI 元素不会增长
- maven - Maven/Xtext:找不到字符串资源“_UI_DiagnosticRoot_diagnostic”
- sed - 如何删除单独但不是数据一部分的正斜杠?
- mysql - 需要帮助加入多个表以给出每个表的最大数量?
- javascript - 如何将 document.getElementById(id) 元素转换为 jquery 对象?
- ios - 无法与信息视图通信我的控制器
- javascript - 用酶渲染的组件中的数组未定义?
- android - 如何在一个 apk 中包含多个 PWA?
- python - 使用 Faber 构建 Boost.Python