我有兩個清單
task=[1,1,1,1,2,2,3,4,5,5]
hours=[1,7,6,2,3,6,5,2,4,6]
-.假設 index 中的值為 1,2,3,4,5 不重復。我想要。sum(以小時為單位的前四個索引的最大值(因為數字 1 在任務中重復了 4 次),以小時為單位的 5,6 個索引的最大值(因為數字 2 在任務中重復了 2 次),以小時為單位的 7 個索引的最大值,最多 8 個索引(以小時為單位),最多 9,10 個索引(以小時為單位)。. . 所以我需要找到任務中每個值的最大值之和,以小時為單位
uj5u.com熱心網友回復:
您可以從串列中創建字典/資料框并按任務分組并匯總:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/368307.html
