用熊猫和加权平均计算的分母复制大小写

时间:2018-06-21 17:52:19

标签: python pandas

熊猫新手试图将sql复制到python。 参考下面的文章,我可以使用一个简单的函数来计算熊猫数据框中列的加权平均值。

Calculate weighted average using a pandas/dataframe

  Date        ID      wt      value   
  01/01/2012  100     0.50    60      
  01/01/2012  101     0.75    
  01/01/2012  102     1.00    100
  01/02/2012  201     0.50    
  01/02/2012  202     1.00    80

但是,如果我在分子和分母中都具有条件​​并且要获得加权平均值的总和,我将在sql中执行以下操作:

 SELECT
    date
    , id
    , SUM(CASE WHEN value IS NOT NULL THEN value * wt ELSE 0 END) /
        NULLIF(SUM(CASE WHEN value > 0 THEN wt ELSE 0 END), 0)
    AS wt_avg

 FROM table
 GROUP BY date, id

我们如何在熊猫中复制它?

谢谢。

1 个答案:

答案 0 :(得分:1)

考虑根据指定的逻辑使用计算的帮助程序列,其中newspaper.build('http://cbs.com', memoize_articles=False)替换了np.where()语句,而CASE代替了Series.fillna()

NULLIF