python groupby参数_python - Pandas groupby:如何对参数列表中的每个参数应用聚合函数 - SO中文参考 - www.soinside.com...

我有一个像这样的数据框:animals = pd.DataFrame({'kind': ['cat', 'dog', 'cat', 'dog'],

'height': [9.1, 6.0, 9.5, 34.0],

'weight': [7.9, 7.5, 9.9, 198.0]})

我想分组并多次应用一些聚合函数。该函数的运行次数和运行参数应为动态(输出应取决于参数列表)。

示例:

假设我想按种类分组并计算身高的平均值,身高的平均值+1,身高的平均值+2,那么我可以运行:parameters = [0,1,2]

animals.groupby(['kind']).agg(

mean_height = ('height', lambda x: x.mean() + parameters[0]),

mean_height_plus_1 = ('height', lambda x: x.mean() + parameters[1]),

mean_height_plus_2 = ('height', lambda x: x.mean() + parameters[2]))

但是,这要求我提前知道参数列表的长度。但是我想稍后改变主意并对parameters = [0,1,2,359]执行相同的操作,而不必手动将代码更改为此:animals.groupby(['kind']).agg(

mean_height = ('height', lambda x: x.mean() + parameters[0]),

mean_height_plus_1 = ('height', lambda x: x.mean() + parameters[1]),

mean_height_plus_2 = ('height', lambda x: x.mean() + parameters[2]),

mean_height_plus_359 = ('height', lambda x: x.mean() + parameters[3]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值