Pandas groupby 将自定义功能应用于每个组

HP_*_*_17 2 python sum pandas pandas-groupby

我有一个多列的表。对于其中一列AC,我需要将其替换为Result AC,如下表所示

在此处输入图片说明

该函数的伪代码如下:

For each unique address:
If 
# of unique(AC) < Value in column B AND 
len(Top 1 (unique(AC))) != len(Top 2 (unique(AC))):
return mode(air_conditioning) 

Else
For each unique(AC), calculate sum(area)
If Top 1 (sum(area)) > Top 2 (SUM(area)):
return air_conditioning which has Top 1 (SUM(building_area))

Else
For each unique(AC), SUM(value)
return air_conditioning with Top 1 (SUM(value))
 
Run Code Online (Sandbox Code Playgroud)

wwn*_*nde 5

Groupby,transfrom sum 应该做

df['col2']=df.groupby('col1')['col2'].transform('sum')
Run Code Online (Sandbox Code Playgroud)