首页 > 解决方案 > 聚合函数的峰度

问题描述

峰度函数在聚合块中使用时,默认使用 Fisher 定义。我希望使用 Pearson 计算。为此,需要设置 Bool "fisher=False" 峰度函数

但是当我在代码上设置时出错

这是适用于峰度的 Fisher 定义的原始代码

df1=df.groupby(['EngID','ncyc']).agg(

    {
        'derived_Field6' : [np.mean,np.std ,skew,kurtosis],
        'derived_Field13' : [np.mean,np.std ,skew,kurtosis],
        'derived_Field20' : [np.mean,np.std ,skew,kurtosis],
        'derived_Field21' : [np.mean,np.std ,skew,kurtosis],
        'derived_rul' : [np.mean],
        'EngID' : [np.mean],

    }
)

当我尝试这个

derived_Field6' : [np.mean,np.std ,skew,kurtosis(fisher= False)],

得到一个错误“峰度()缺少1个必需的位置参数:'a'”

请告知正确的语法

谢谢

标签: python

解决方案


您可以使用functools.partial来“冻结”一些函数参数。在你的情况下:

import functools
from scipy.stats import kurtosis

kurtosis_pearson = functools.partial(kurtosis, fisher=False)

然后,您可以传递kurtosis_pearson给您的聚合函数。


推荐阅读