Pandas: Difference between largest and smallest value within group

后端 未结 3 1720
心在旅途
心在旅途 2020-11-30 02:45

Given a data frame that looks like this

GROUP VALUE
  1     5
  2     2
  1     10
  2     20
  1     7

I would like to compute the differe

3条回答
  •  温柔的废话
    2020-11-30 02:55

    groupby/agg generally performs best when you take advantage of the built-in aggregators such as 'max' and 'min'. So to obtain the difference, first compute the max and min and then subtract:

    import pandas as pd
    df = pd.DataFrame({'GROUP': [1, 2, 1, 2, 1], 'VALUE': [5, 2, 10, 20, 7]})
    result = df.groupby('GROUP')['VALUE'].agg(['max','min'])
    result['diff'] = result['max']-result['min']
    print(result[['diff']])
    

    yields

           diff
    GROUP      
    1         5
    2        18
    

提交回复
热议问题