假设我们有问题跟踪日志,我们想找出问题所有者(记录问题时间最多的人)
我们有一些样本数据:
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'])
作为输出,我们需要如下内容:
issues_owners = pd.DataFrame([
[1, 30, 'John'],
[1, 30, 'Tom'],
[2, 25, 'John']], columns = ['IssueKey','TimeSpent','User'])
1
期的所有者,因为他们都花了30分钟。你知道吗1
2
我想到的感觉非常恶心(我对Python比较陌生):
df = df.groupby(['IssueKey', 'User']).sum().reset_index()
maxTimesPerIssue = df.groupby('IssueKey')['TimeSpent'].max().reset_index()
maxTimesPerIssue = dict(zip(maxTimesPerIssue['IssueKey'], maxTimesPerIssue['TimeSpent']))
df['MaxTimePerIssue'] = [maxTimesPerIssue[key] for key in df['IssueKey']]
df = df[df.MaxTimePerIssue == df.TimeSpent]
df = df.drop(columns=['MaxTimePerIssue'])
我不喜欢Python代码的地方:
maxTimesPerIssue
出现在处理df
中断思维过程(或管道)的过程中maxTimesPerIssue
本身有点混乱MaxTimePerIssue
加到df
reset_index()
、list()
、dict()
、列表理解、删除列,因此它肯定没有C版本那么容易解释有人能帮我打扫一下吗?你知道吗
一些类似于
groupby
的东西将适用于您的数据:相关问题 更多 >
编程相关推荐