2
我在一個循環中,給了我像下面 df.groupby(['grp1','grp2'])['mycol'].sum()
取最大值從多個分組數據大熊貓
基本上我讓我的分組元素的總和GROUPBY輸出。
grp1 grp2
A 1 10
B 1 20
C 2 30
D 3 40
E 4 50
1 60
現在下一次迭代中我可以得到一個像下面
grp1 grp2
A 1 20
D 3 40
E 4 30
1 90
F 1 40
我想從每次迭代採取max
分組DF。 所以第二迭代後我有這樣
grp1 grp2
A 1 20 #because 20 was higher than 10
B 1 20 #carried as it is
C 2 30 #carried as it is
D 3 40 #carried as it is (both were equal)
E 4 30 #because 90+30 >50+60
1 90
F 1 40 #added
的輸出因此由最終我期間發言權5次迭代,其組達到峯值。 這聽起來很直接(跟蹤迄今爲止見過的最大值),但我沒有得到如何解決這個問題。 我試過df.groupby(['grp1','grp2'])['mycol'].sum().to_dict()
,並且在閱讀新的df時做了更新字典的操作。 (只是一個嘗試,不知道如何保持字典更新)或者有一個簡單的pandas and np
解決方案,我仍然不知道。
感謝,但是'max'知道如何添加然後比較呢? – pythonRcpp
我不確定我是否理解你的後續問題:-) 如果你在連接之後檢查'res',你應該看到每個索引組合可以出現很多次,例如, [(A,1),(B,1),(A,1),(A,1),...]。這就是我們用'level'分組,然後'max'從每個組中取最大值。這是否回答你的問題,@pythonRcpp? – NTAWolf
是的,我認爲'水平'是在做我關心的伎倆。謝謝,我會在我的樣本數據上運行它時接受答案。非常好的答案確實..謝謝 – pythonRcpp