python - Panda Dataframe Select Filter And Aggregate in 1 statement -


how can select, filter , agg in 1 statement...(pieces below)

df = df.loc[df['gender'] == ('m'),['name','gender','weight']] df = df.groupby(['name','gender']).agg({'weight': np.sum}) 

build test data:

df = pd.dataframe({'gender':np.random.choice(['m','f'],size=10),                    'name':np.random.choice(list('abcd'),10),                    'weight':np.random.randint(50,250,10),                    'height':np.random.randint(3,15,10)})  print(df) 

output df

  gender  height name  weight 0      m       5        153 1      m      10        103 2      m       5    c     185 3      f       4    b      82 4      m       4    c     112 5      m      12    b     224 6      m      12    d     131 7      f       6    d     193 8      f      12    b      78 9      f      13    c      58 

do filter , group 1 statement:

df.loc[df['gender']=='m',['name','gender','weight']].groupby(['name','gender']).agg({'weight':'sum'})               weight name gender            m          256 b    m          224 c    m          297 d    m          131 

Comments