You can use
aggfunction after the
groupby:
df.groupby(['name', 'age'])['phonenumber']. agg({'phonecount': pd.Series.nunique, 'phonenumber': lambda x: ','.join(x) } )# phonenumber phonecount# name age # A 10 Phone1,Phone22# B 21 PhoneB1,PhoneB22# C 23 PhoneC1Or a shorter version according to @root and @Jon Clements:
df.groupby(['name', 'age'])['phonenumber']. agg({'phonecount': 'nunique', 'phonenumber': ','.join})


