python - Python:按组计算数据帧中的特定出现次数
问题描述
假设我有一个df:
df = pd.DataFrame({'id': [12, 35, 37, 67, 99, 78],
'product': ['banana', 'apple', 'banana', 'pear', 'banana', 'apple'],
'reordered': [1, 0, 0, 1, 1, 1]})
id product reordered
0 12 banana 1
1 35 apple 0
2 37 banana 0
3 67 pear 1
4 99 banana 1
5 78 apple 1
我想计算“产品”列中产品的出现次数,以及按产品分组的“重新排序”列中的值。期望的结果:
product count reordered_0 reordered_1
0 banana 3 1 2
1 apple 2 1 1
2 pear 1 1 0
请指教
解决方案
使用crosstab
with DataFrame.insert
for 列作为第一个位置:
df = pd.crosstab(df['product'], df.reordered).add_prefix('reordered_')
df.insert(0, 'count', df.sum(axis=1))
df = df.reset_index().rename_axis(None, axis=1)
print(df)
product count reordered_0 reordered_1
0 apple 2 1 1
1 banana 3 1 2
2 pear 1 0 1
推荐阅读
- php - Laravel 动态路由参数显示错误 404
- angularjs - 将表单设置为加载后提交
- angular - 角路由器:如何在运行时/动态地操纵每个路由数据?
- dart - 5 个 TextFormField 验证器中只有 2 个在工作
- razor - 如何在 ASP.NET Core 中将 ViewComponent 拉到响应缓存控制器的操作之外
- javascript - 获取所有嵌套项的计数
- google-apps-script - UrlFetchApp 返回的响应与我在浏览器中看到的不同
- java - 如何从文本文件中获取价值并与 firebase 链接
- javascript - 需要一些 Javascript ASP.NET 建议
- file - 如何在 Rust 中异步计算硬盘上文件的校验和?