熊猫聚合中的自定义功能

时间:2019-11-12 10:03:13

标签: python pandas

我有一个以下数据框-result from this question

                         t2m  ...       kont    sum             d1                  d2
latitude longitude            ...           
46.5     18.0       0.284698  ...               0.001613        1998-01-12 07:00:00 1998-01-24 08:00:00
         18.0      -1.304504  ...   FROMHERE    0.004097        1998-01-24 08:00:00 1998-01-24 09:00:00
         18.0       0.345001  ...   FROMHERE    0.024207        1998-01-24 17:00:00 1998-01-25 00:00:00         
         18.0      -4.786346  ...   FROMHERE    xxxxxx

我想实现此数据帧的.agg的自定义和内置函数的组合。 这是代码:

dfgeo=df.groupby(['latitude', 'longitude']).agg(
                 std=('sum',np.std),
                 maks=('sum','max'),
                 mean=('sum',(lambda x: mean(absolute(x - mean(x)))))
                 ).reset_index()

代码mean=('sum',(lambda x: mean(absolute(x - mean(x)))))模仿了平均平均偏差,因为它不是直接建立在Numpy中的,或者我找不到它。 我收到以下错误:

KeyError: "[('ar', '<lambda>')] not in index"

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

对我来说,使用自定义功能:

def f(x):
    return np.mean(np.abs(x - np.mean(x)))

dfgeo=df.groupby(['latitude', 'longitude']).agg(
                 std=('sum',np.std),
                 maks=('sum','max'),
                 mean=('sum',f)
                 ).reset_index()