python - 计算 id 出现的次数并将其分配给列
问题描述
我有一个数据集,并希望根据其他列会话时间提取该列中重复的 ID 计数。
数据集:
person ID Session type ID
1001 morning 1
1001 evening 1
1002 morning 2
1002 night 1
1001 morning 2
1002 evening 1
1002 night 2
根据我的类型 ID == 1 我想为每个会话计算它们,如下所述
输出:
person ID morning_count evening_count night_count
1001 1 1 0
1002 0 1 1
根据我的类型 ID ==1,它应该给我每个会话列的计数。
解决方案
首先DataFrame.assign
为匹配的行创建填充整数的新列,然后使用DataFrame.pivot_table
with 聚合并最后使用,和sum
进行一些数据清理:DataFrame.add_suffix
DataFrame.reset_index
DataFrame.rename_axis
df1 = (df.assign(count=df['type ID'].eq(1).astype(int))
.pivot_table(index='person ID',
columns='Session',
values='count',
aggfunc='sum',
fill_value=0)
.add_suffix('_count')
.reset_index()
.rename_axis(None, axis=1))
print (df1)
person ID evening_count morning_count night_count
0 1001 1 1 0
1 1002 1 0 1
推荐阅读
- shopify - 在shopify结账时添加二维码
- html - 设置居中宽度使用 "display:flex" & "justify-content:center"
- joomla3.0 - 在 Joomla 中使用 mailchimp 发布文章时向订阅者发送电子邮件
- angular - '记忆选择器
' 不能分配给“isAuthentificated”类型的参数 - .net - 单线程异步编程
- elasticsearch - 异常:LogStash::ConfigurationError
- x86-16 - 写入 BIOS Flash ROM 时黑屏死机
- java - 父母因担心而烦恼?(测试配置,部署配置)
- android - 如何在没有 Android Studio 的情况下查看 XML 预览
- android - 传递结果失败ResultInfo不断抛出