我的熊貓數據框如下:熊貓透視表
df = pd.DataFrame({"PAR NAME":['abc','def','def','def','abc'], "value":[1,2,3,4,5],"DESTCD":['E','N','E','E','S']})
我需要轉動自由度的PAR名稱,並找出它的價值%年齡來自哪裏DESTCD是「E」的地方。像這樣的東西(這顯然沒有工作!)
df.pivot_table(index="PAR NAME",values=["value"],aggfunc={'value':lambda x: (x.sum() if x["DESTCD"]=="E")*100.0/x.sum()})
我目前做這通過增加一個條件列,然後總結其與支點「價值」一起,然後分,但我的數據庫是巨大的(1GB +)而且必須有一個更簡單的方法。
編輯:預期輸出 ABC 16.67(因爲ABC以及E是1出總ABC它是6) DEF 77.78(因爲DEF和E是7出的總共9個DEF的);
(注:請不要推薦切片多dataframes提到我的數據是巨大的,效率很關鍵,:))
您可以添加預期的輸出 – Dark