Pandas里面的加权平均,我猜你不会用!

本文介绍了在Pandas中如何计算加权平均,通过一个实际案例解释了加权平均在数据分析中的重要性,以及如何自定义函数结合groupby进行加权平均计算,并展示了使用numpy实现加权平均的方法。
摘要由CSDN通过智能技术生成

关注公众号:数据科学专栏,回复"资料",领取精美资料。

 

  摘要

 

Pandas包含多个内置函数,如sum、mean、max、min等,你可以将其应用于一个DataFrame或分组数据。然而,构建和使用自己定义的函数可以进一步了解如何利用Pandas进行数据分析。

 

加权平均数是一个很好的示例,因为它很容易理解,但在pandas中并不包含其公式。虽然在Pandas中构建加权平均函数相对简单,但是当与groupby等其他panda函数结合使用时非常有用。

 

  为什么要使用加权平均

 

举一个简单的例子说明了为什么加权平均是一个有用的统计数据。下表显示了3个不同客户为同一产品支付的价格和数量:

 

顾客类型

鞋子价格/$

购买数量/双

土豪

300

20

小康

200

100

平民

150

225

 

如果有人问,鞋子的平均价格是多少?可能你会这么计算:

640?wx_fmt=png

 

但是你仔细看看这些数字,你会发现以低于200美元的价格卖出的鞋子远远多于200美元以上的价格。因此,简单平均216.67美元并不能准确反映市场上的实际平均售价。

 

更有用的是根据购买的数量来衡量这些价格。做法是建立一个加权平均数模型,使平均鞋价更能代表所有顾客的购买模式。

 

计算如下:

640?wx_fmt=png

 

这个数字比简单的平均价格显然更准确地反映了产品的总体平均价格。

 

  如何在Pandas中计算加权平均呢

 

加权平均的数学概念很简单。因为我们需要值和权重,所以在对数据进行复杂分组时,在Panda中实现它可能不太直观。然而,一旦你算出来了,在很多不同的情况下使用加权平均是非常容易的。

 

接下来将使用一个虚拟的销售数据介绍Pandas中如何使用加权平均。

 

1、读取数据

640?wx_fmt=png

 

查看下数据:

640?wx_fmt=png

 

在示例数据中,包括当前价格和数量以及预测的New_Product_Price。

 

简单平均:

640?wx_fmt=png

结果:

640?wx_fmt=png

 

加权平均:

640?wx_fmt=png

 

结果:

  • 当前:342.540687161$

  • 新品:374.638336347$

 

加权平均公式不复杂,但冗长。当我们对数据进行分组时,它也很难使用。如果我们构建一个计算数据的函数,将会简单得多。

 

  结合分组(GruopBy)等函数使用加权平均

 

定义一个自定义函数,该函数接受数据列的名称并计算加权平均值。然后,使用apply对分组的数据执行它。

 

Python代码:

640?wx_fmt=png

结果:

640?wx_fmt=png

说明:如果总权重中有一个0,我想返回简单的均值。你可以自己定义其他值。

 

也可以根据多个条件进行分组,该函数将确保在每个分组中使用正确的数据:

640?wx_fmt=png

结果:

640?wx_fmt=png

 

  多个聚合及Numpy实现加权平均

 

1、多个聚合

640?wx_fmt=png

结果:

640?wx_fmt=png

多个聚合优点:对不同字段采用不同的函数分析结果。

 

2、组合label成一个新的有意义的Dataframe。

640?wx_fmt=png

 

结果(按销售经理看产品的销售价格):

640?wx_fmt=png

 

3、numpy中如何实现加权平均?

640?wx_fmt=png

说明:numpy求平均操作中带有一个权重参数

 

4、对于Group之后的数据用lambda表达式实现加权平均。

640?wx_fmt=png

 

 

   参考:《Python数据科学手册》

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值