首页 > 解决方案 > 如何添加从现有列添加和求和计数的新列?

问题描述

我有这个python代码:

counting_bach_new = counting_bach.groupby(['User Name', 'time_diff', 'Logon Time']).size()
print("\ncounting_bach_new")
print(counting_bach_new)

...得到这个整洁的结果:

counting_bach_new
User Name  time_diff            Logon Time
122770     -132 days +21:38:00  1             1
           -122 days +00:41:00  1             1
123526     -30 days +12:04:00   1             1
           -29 days +16:39:00   1             1
           -27 days +18:16:00   1             1
                                             ..
201685     -131 days +21:21:00  1             1
202047     -106 days +10:14:00  1             1
202076     -132 days +10:22:00  1             1
           -132 days +14:46:00  1             1
           -131 days +21:21:00  1             1

那么如何添加新列来添加和汇总现有列的计数?最右边带有 1 的列应该被忽略,而我——另一方面——想添加一个新列,总结每个“用户名”的“时间差异”计数,即新列中的结果应该总和 #每个用户列出的观察结果。总结 # of time_diffs 或 Logon Time's。对于用户名 122770,新列的总和应为 2,对于 123526,它的总和应为 3,依此类推....

我尝试了几次尝试,包括(但不工作)......

counting_bach_new.groupby('User Name').agg(MySum=('Logon Time', 'sum'), MyCount=('Logon Time', 'count'))

任何帮助,将不胜感激。谢谢你,你的善意支持。来自@Hubsandspokes 的圣诞问候

标签: python-3.xpandassumpandas-groupby

解决方案


如果我正确理解了请求,请尝试:

counting_bach_new.reset_index().groupby(['User Name'])['Logon Time'].count()

如果您需要保存起始列数,请尝试:

counting_bach_new.reset_index().groupby(['User Name'])['Logon Time'].transform('count')

推荐阅读