pandas算加权平均值_python – groupby加权平均值和pandas数据帧中的和

在Python中,利用Pandas库处理数据帧时,可以按照多个列进行分组并计算加权平均值。给定的数据帧包含了'contract', 'month', 'year', 'buys', 'adjusted_lots' 和 'price' 列。目标是按这些列分组,计算'adjusted_lots'的总和以及根据'adjusted_lots'权重的'price'加权平均值。在R中,这可以通过dplyr库实现,但在Pandas中,可以使用groupby和apply方法来达到相同的效果。" 6527644,1036105,Verilog学习:跳边沿检测、任务与函数,"['Verilog', '数字系统设计', '硬件描述语言', '信号处理', '电路设计']
摘要由CSDN通过智能技术生成

我有一个数据帧,

Out[78]:

contract month year buys adjusted_lots price

0 W Z 5 Sell -5 554.85

1 C Z 5 Sell -3 424.50

2 C Z 5 Sell -2 424.00

3 C Z 5 Sell -2 423.75

4 C Z 5 Sell -3 423.50

5 C Z 5 Sell -2 425.50

6 C Z 5 Sell -3 425.25

7 C Z 5 Sell -2 426.00

8 C Z 5 Sell -2 426.75

9 CC U 5 Buy 5 3328.00

10 SB V 5 Buy 5 11.65

11 SB V 5 Buy 5 11.64

12 SB V 5 Buy 2 11.60

我需要一个adjust_lots的总和,价格是加权平均值,价格和ajusted_lots,按所有其他列分组,即.按(合同,月份,年份和购买)分组

使用dplyr通过以下代码实现对R的类似解决方案,但无法在pandas中执行相同操作.

> newdf = df %>%

select ( contract , month , year , buys , adjusted_lots , price ) %>%

group_by( contract , month , year , buys) %>%

summarise(qty = sum( adjusted_lots) , avgpx = weighted.mean(x = price , w = adjusted_lots) , comdty = "Comdty" )

> newdf

Source: local data frame [4 x 6]

contract month year comdty qty avgpx

1 C Z 5 Comdty -19 424.8289

2 CC U 5 Comdty 5 3328.0000

3 SB V 5 Comdty 12 11.6375

4 W Z 5 Comdty -5 554.8500

groupby或任何其他解决方案是否可能相同?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值