合并具有相同ID的行,同时从某些列中检索最大值

时间:2019-09-11 21:33:29

标签: python

我正在尝试合并多行并从列中检索最大值: 说我有以下数据框:

id  Reaction1 Reaction2 Reaction3 
A      4         3         2       
A      1         2         1      
A      5         1         0       
B      3         2         1       
B      1         1         2       

,我想合并该行以显示每一列的最大值:

id Reaction1 Reaction2 Reaction3 
A     5          3         2      
B     3          2         2

另一个问题是:

保留其他行(不要将它们分组)并使用max(abs)覆盖该列,原因是我可能还有其他要保留的列信息:

id  Reaction1 Reaction2 Reaction3 Other_col
A      5         3         2       x
A      5         3         2       y
A      5         3         2       z
B      3         2         2       x
B      3         2         2       y

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以最多执行groupby对象:

df.groupby('id').max()

输出:

    Rx1  Rx2  Rx3
id
A     5    3    2
B     3    2    2

如果您想让'id'保留在列而不是索引中,则可以将其更改为:

df.groupby('id').max().reset_index()
相关问题