[英]df.groupby() modification HELP needed
這是我的表:
A B C E
0 1 1 5 4
1 1 1 1 1
2 3 3 8 2
現在,我想按列A和B對所有行進行分組。列C應該相加,對於列E,我想使用值C最大的值。
我做了第一部分分組A和B並總結C.我這樣做:
df = df.groupby(['A', 'B'])['C'].sum()
但是在這一點上,我不知道如何判斷E列應該取C的最大值。
最終結果應如下所示:
A B C E
0 1 1 6 4
1 3 3 8 2
有人可以用這件過去的作品來幫助我嗎? 謝謝!
在使用C
排序后使用groupby
和agg
。
通常,如果要將不同的函數應用於不同的列, DataFrameGroupBy.agg
允許您傳遞一個字典,指定應用於每列的操作:
df.sort_values('C').groupby(['A', 'B'], sort=False).agg({'C': 'sum', 'E': 'last'})
C E
A B
1 1 6 4
3 3 8 2
通過首先按列C
排序,而不是作為groupby
一部分排序,我們可以選擇每組E
的最后一個值,它將與每個組的最大值C
對齊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.