python计算加权平均分_python – 使用pandas数据帧计算加权平均值

我有以下pandas数据帧:

data_df = pd.DataFrame({'ind':['la','p','la','la','p','g','g','la'],

'dist':[10.,5.,7.,8.,7.,2.,5.,3.],

'diff':[0.54,3.2,8.6,7.2,2.1,1.,3.5,4.5],

'cas':[1.,2.,3.,4.,5.,6.,7.,8.]})

那是

cas diff dist ind

0 1 0.54 10 la

1 2 3.20 5 p

2 3 8.60 7 la

3 4 7.20 8 la

4 5 2.10 7 p

5 6 1.00 2 g

6 7 3.50 5 g

7 8 4.50 3 la

我需要计算权重在’dist’列中的所有列的加权平均值,并将值分组为’ind’.

例如’ind’=’la’和’diff’列:

((10*0.54)+(8.60*7)+(7.20*8)+(4.50*3))/(10+7+8+3) = 4.882143

我想要获得的结果如下

cas diff

ind

g 6.714286 2.785714

la 3.107143 4.882143

p 3.750000 2.558333

通过将每个列的每个值乘以’dist’列中的相应值得到,将结果与相同的’ind’相加,然后将结果除以对应于相同ind的所有’dist’值的总和.

我认为这可能是数据帧’groupby’方法完成的一项简单任务,但实际上它有点棘手.

有人可以帮帮我吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值