Python 在pandas.agg()方法中使用多个lambda函数
我有这种数据帧:Python 在pandas.agg()方法中使用多个lambda函数,python,pandas,lambda,aggregate-functions,Python,Pandas,Lambda,Aggregate Functions,我有这种数据帧: df = pd.DataFrame({ "values":['A', 'A', 'B', 'A', 'A', 'B', 'C', 'A', 'B', 'B'], "category": [1, 1, 1, 1, 1, 2, 2, 2, 2, 2], 'dummy': list(range(10)) }) 我可以按组获得百分比,如下所示: df.groupby([
df = pd.DataFrame({ "values":['A', 'A', 'B', 'A', 'A', 'B', 'C', 'A', 'B', 'B'],
"category": [1, 1, 1, 1, 1, 2, 2, 2, 2, 2],
'dummy': list(range(10))
})
我可以按组获得百分比,如下所示:
df.groupby(['values', 'category'])['dummy'].nunique().groupby(level=0).apply(lambda x: 100 * x / float(x.sum()))
现在,我想将此方法用于.agg()
,如下所示:
aggregators = {'counts': 'count',
'percentage': lambda z: z.nunique().groupby(level=0).apply(lambda x: 100 * x / float(x.sum()))
}
df.groupby(['values', 'category'])['dummy'].agg(aggregators)
但我收到了这个错误:
AttributeError: 'int' object has no attribute 'groupby'
似乎lambda z:z.nunique()
在该表达式中是一个整数。
如何使lambda在agg
内部工作?
谢谢