我有一个数据框,我想聚合一个自定义的聚合函数。
现在,它就像预定义函数一样,但我想将其称为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'])
答案 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'])