繁体   English   中英

求和列表中每个元素索引的最大值

[英]Sum the max of each element index in list

我有两个清单

task=[1,1,1,1,2,2,3,4,5,5]
hours=[1,7,6,2,3,6,5,2,4,6]

-.假设索引中的值是 1,2,3,4,5 没有重复。 我想要。 总和(以小时为单位的前四个索引的最大值(因为 1 号在任务中重复 4 次),以小时为单位的 5,6 索引的最大值(因为 2 号在任务中重复 2 次),以小时为单位的 7 索引的最大值,最多 8 个索引(小时),最多 9,10 个索引(小时)。 . . 所以我需要以小时为单位找到任务中每个值的最大值之和

您可以从列表中创建字典/数据框,并按任务分组并汇总以求和:

import pandas as pd
task=[1,1,1,1,2,2,3,4,5,5]
hours=[1,7,6,2,3,6,5,2,4,6]
df = pd.DataFrame({'task': task, 'hours': hours})
print(df.groupby('task').agg(sum))

Output:

      hours
task       
1        16
2         9
3         5
4         2
5        10
编辑:似乎我误解了这个问题。

您可以使用相同的逻辑来查找最大值,然后将它们相加:

max_val = df.groupby('task').agg(max)
print(int(max_val.sum()))

Output:

# max_val:
      hours
task       
1         7
2         6
3         5
4         2
5         6
# sum : 26

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM