我有一個數據幀DF =熊貓GROUPBY多個鍵選擇獨特的價值觀和轉化
Owner Manager Date Hours City
John Jerry 1/2/16 10 LA
John Jerry 1/2/16 10 SF
Mary Jerry 1/2/16 9 LA
Zach Joe 1/3/16 5 SD
Wendy Joe 1/3/16 4 SF
Hal Joe 1/4/16 2 SD
... 100000項
我想通過「經理」和「日期」,然後組選擇'所有者'的唯一值並且選擇該'選擇'的總和'小時',最後將總和轉換爲新的列'Hours_by_Manager'。
我所需的輸出是:
Owner Manager Date Hours City Hours_by_Manager
John Jerry 1/2/16 10 LA 19
John Jerry 1/2/16 10 SF 19
Mary Jerry 1/2/16 9 LA 19
Zach Joe 1/3/16 5 SD 9
Wendy Joe 1/3/16 4 SF 9
Hal Joe 1/4/16 2 SD 2
我試着用大熊貓「GROUPBY」是這樣的:
df['Hours_by_Manager']=df.groupby(['Manager','Date'])['Hours'].transform(lambda x: sum(x.unique()))
它可以給我我想要的東西,但只是因爲時間值之間的不同'所有者'。我正在尋找的是這樣的: df['Hours_by_Manager']=df.groupby(['Manager','Date'])['Owner'].unique()['Hours']transform(lambda x: sum(x))
這顯然不是句法正確的。我知道我可以使用循環,但我想保持矢量化。有什麼建議麼?
假設有與'Mary'另一條線作爲所有者,同經理和日期,但有不同數量''小時',說19。結果應該是什麼?特別是「約翰」的結果應該是什麼? – unutbu
小時與特定'日期'上'所有者'的工作小時數相關聯。 「所有者」始終與特定的「經理」相關聯。所以瑪麗在給定的日期永遠不會有不同的小時數。在這個意義上,小時的價值將是多餘的。這就是爲什麼'Hours_by_Manager'的結果對於John和Mary的兩個實例都是19,因爲它們與經理Jerry相關聯。 – andrebo7