熊猫新手试图将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
我们如何在熊猫中复制它?
谢谢。
答案 0 :(得分:1)
考虑根据指定的逻辑使用计算的帮助程序列,其中newspaper.build('http://cbs.com', memoize_articles=False)
替换了np.where()
语句,而CASE
代替了Series.fillna()
。
NULLIF