熊猫groupby和自定义agg lambda函数

时间:2020-05-30 08:23:46

标签: python pandas group-by aggregate

我有一个数据框,我想聚合一个自定义的聚合函数。

现在,它就像预定义函数一样,但我想将其称为lambda函数。请注意,预定义函数的参数可以更改。

from sklearn.datasets import load_boston
import pandas as pd
import numpy as np
bunch = load_boston()

y = bunch.target
X = pd.DataFrame(bunch.data, columns=bunch.feature_names)

def percentile_func(y,PERCENTILE=50):
    return np.percentile(y,PERCENTILE)

X.groupby('CHAS')['CRIM'].agg([percentile_func,'sum', 'count'])

2 个答案:

答案 0 :(得分:1)

尝试一下:

X.groupby('CHAS')['CRIM'].agg([lambda x: np.percentile(x, 50),'sum', 'count'])

答案 1 :(得分:1)

您可以在此处使用functools.partial

from functools import partial

f = partial(percentile_func,PERCENTILE=50) # you can change PERCENTILE value accordingly.

X.groupby('CHAS')['CRIM'].agg([f,'sum', 'count'])