You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于分组属性过滤DataFrame:定位工单耗时最多负责人

解决问题:找出每个工单的耗时最多负责人

没问题,我来帮你搞定这个需求——从问题追踪系统的日志数据里,找出每个工单的负责人(即该工单上总耗时最多的用户),如果有多名用户总耗时相同,那就全部列为负责人。

第一步:准备示例数据

先把你给出的示例数据用pandas加载好:

import pandas as pd

df = pd.DataFrame([
    [1, 10, 'John'],
    [1, 20, 'John'],
    [1, 30, 'Tom'],
    [1, 10, 'Bob'],
    [2, 25, 'John'],
    [2, 15, 'Bob']
], columns=['IssueKey','TimeSpent','User'])

第二步:计算每个用户在工单上的总耗时

首先按IssueKey(工单编号)和User(用户)分组,统计每个用户在对应工单上的累计耗时:

# 分组计算每个用户的工单总耗时
user_time_totals = df.groupby(['IssueKey', 'User'])['TimeSpent'].sum().reset_index()

这一步会得到每个用户在各工单的总耗时结果:

IssueKey  User  TimeSpent
0         1   Bob         10
1         1  John         30
2         1   Tom         30
3         2   Bob         15
4         2  John         25

第三步:找出每个工单的最大耗时值

接下来,我们需要知道每个工单的最高总耗时是多少,这样才能筛选出达到这个值的用户:

# 计算每个工单的最大总耗时
max_time_per_issue = user_time_totals.groupby('IssueKey')['TimeSpent'].max().reset_index(name='MaxTotalTime')

结果如下:

IssueKey  MaxTotalTime
0         1            30
1         2            25

第四步:筛选出每个工单的负责人

把上面两个结果合并,然后筛选出总耗时等于该工单最大值的用户,就是我们要找的负责人:

# 合并数据并筛选负责人
issues_owners = pd.merge(user_time_totals, max_time_per_issue, on='IssueKey')
issues_owners = issues_owners[issues_owners['TimeSpent'] == issues_owners['MaxTotalTime']]

# 可选:重命名列让结果更清晰
issues_owners = issues_owners.rename(columns={'TimeSpent': 'TotalTimeSpent'})

最终的issues_owners结果就是:

IssueKey  User  TotalTimeSpent  MaxTotalTime
1         1  John              30            30
2         1   Tom              30            30
4         2  John              25            25

可选:将同一工单的负责人合并到一行

如果希望同一个工单的负责人显示在同一行(用逗号分隔),可以再做一步聚合:

issues_owners_combined = issues_owners.groupby('IssueKey').agg(
    MaxTotalTime=('MaxTotalTime', 'first'),
    Owners=('User', ', '.join)
).reset_index()

这会得到更紧凑的结果:

IssueKey  MaxTotalTime    Owners
0         1            30  John, Tom
1         2            25       John

内容的提问来源于stack exchange,提问作者Andrzej Gis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:54:46