[英]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.