簡體   English   中英

df.groupby()修改需要HELP

[英]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排序后使用groupbyagg

通常,如果要將不同的函數應用於不同的列, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM