对列表中每个元素索引的最大值求和 [关闭]
Posted
技术标签:
【中文标题】对列表中每个元素索引的最大值求和 [关闭]【英文标题】:Sum the max of each element index in list [closed] 【发布时间】:2022-01-05 13:55:28 【问题描述】:我有两个列表
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 个索引(小时)。 . . 所以我需要以小时为单位找到任务中每个值的最大值之和
【问题讨论】:
您能否举例说明您的样本数据的结果应该是什么样的? 确定输出将是:该项目可以在 26 天内完成。 26 来自最大前四个索引 [1,7,6,2] 。最大 5,6 索引 [3,6]。最大 7 个索引 [5]。最多 8 个索引 [2]。最大 9,10 索引 [4,6]。然后对max的结果求和 【参考方案1】:您可以从列表中创建字典/数据框,并按任务分组并汇总:
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))
输出:
hours
task
1 16
2 9
3 5
4 2
5 10
编辑:似乎我误解了这个问题。
您可以使用相同的逻辑来找到最大值,然后将它们相加:
max_val = df.groupby('task').agg(max)
print(int(max_val.sum()))
输出:
# max_val:
hours
task
1 7
2 6
3 5
4 2
5 6
# sum : 26
【讨论】:
我只需要最大值然后是它的总和 哦,对了!我更新了我的答案 谢谢是对的。但是如果没有(import pandas as pd)的另一种解决方案,因为我没有学习,并且可能因此而丢失标记。 @NoUce 所以你要求我们解决你的任务,你得到标记甚至没有尝试解决它? @PatrickArtner 是对的,我们愿意提供帮助,但只有在您想自学时才有意义。我们可以帮助您采用经典方法。尝试使用enumerate
循环遍历task
这可能会帮助您开始以上是关于对列表中每个元素索引的最大值求和 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
对于 np.array 中的每个元素,找到具有相同元素值的最大索引 [关闭]