python - 向 df 添加一列,其中包含 df 中不同列的值的计数?
问题描述
我在下面有一个df:
Day
Morning
Day
Night
Night
Day
Morning
Day
Day
此 df 中还有其他列,并且不仅包含上述列
当我运行以下代码时:
df.groupby('day').count()
它输出一个 df,其中包含 day 列的每个值在 df 的其他列中出现的次数(对于 day 列中的每个值,它的计数相同)
如何创建一个新列,列出 Day 列的每个值的相同计数?
预期输出:
Day New_Col
Morning 2
Day 4
Night 2
Night 2
Day 4
Morning 2
Day 4
Day 4
谢谢!
解决方案
transform()
如果要映射回来,请使用:
df['New_Col'] = df.groupby('Day')['Day'].transform('count')
或者您可以使用map
, 以及value_counts()
:
df['New_Col'] = df['Day'].map(df['Day'].value_counts())
输出:
Day New_Col
0 Morning 2
1 Day 4
2 Night 2
3 Night 2
4 Day 4
5 Morning 2
6 Day 4
7 Day 4
推荐阅读
- javascript - document.getElementById 即使在 window.onload 之后也给我 undefined
- ios - UILabel 的默认字距是多少(属性文本看起来不同)
- sql - 如何编写 SQL 查询来汇总每个用户的存款和取款
- autosar - Autosar 中 ClassNameDesign 清单的用途是什么
- powershell - 使用 Powershell 隐藏父目录和子目录
- sql - 如何使用 SQL 查询 AWS ElasticSearch
- github - 如何解除 Github 与 Sentry 帐户的关联?
- python - 安装包时出现 UnsatisfiableError
- azure - SharePoint Online 和本地 .Net Web 应用程序之间的 SSO
- python - 代码在pycharm中运行良好,但转换为exe时却不行