因为您只想应用一个方法,所以可以使用
apply
而不是
aggregate
. 参数必须是一个可调用的python,才能应用于每个组,因此在您的例子中
data.groupby('model').apply(lambda group: sklearn.metrics.auc(group.FPR, group.TPR))
例如:
y = np.array([1, 1, 2, 2])
pred = np.array([0.1, 0.4, 0.35, 0.8])
fpr, tpr, _ = sklearn.metrics.roc_curve(y, pred, pos_label=2)
df_a = pd.DataFrame({'model': 'a', 'FPR': fpr, 'TPR': tpr})
df_b = pd.DataFrame({'model': 'b', 'FPR': fpr, 'TPR': tpr})
data = df_a.append(df_b)
data.groupby('model').apply(lambda group: sklearn.metrics.auc(group.FPR, group.TPR))
输出:
model
a 0.75
b 0.75
dtype: float64