熊猫重复groupby

时间:2018-11-03 16:17:01

标签: python pandas group-by duplicates

我有一个Pandas数据框,以及一些有关某些人的数字数据。 我需要做的是找到在数据框中占比不止一次的人员,并用一行代替一个人的所有行,其中数值是某些列中各行之前的数值之和,以及其他最小值。 我知道如何使用groupby()和sum()进行总和,但不知道如何对不同的列做不同的事情

示例:

Names  Column1 Column2 Column3  
John     1        2     2016
Bob      2        3     2011
Pier     1        1     2003
John     3        3     2005
Bob      1        0     2018

必须成为:

Names  Column1 Column2 Column3  
John     4        5     2005
Bob      3        3     2011
Pier     1        1     2003

我该怎么办?

1 个答案:

答案 0 :(得分:2)

使用groupby + agg并为每个列定义特定的聚合函数,例如dict

df.groupby('Names').agg({'Column1':'sum', 'Column2':'sum','Column3':'min'})

    Column1 Column2 Column3
Names           
Bob     3     3     2011
John    3     3     2005
Jonh    1     2     2016
Pier    1     1     2003