首页 > 解决方案 > 使用多个熊猫系列的加权和?

问题描述

我有 3 个熊猫系列,我想进行加权求和。

基本上我想对 p,r,y 中的所有元素求和并执行以下操作

(1/n) * ((r * y) / p) 其中 n 是元素的数量

p = pd.Series(np.random.random(5)) 
r = pd.Series([1,0,0,1,0]) 
y = pd.Series([1,0,0,0,1]) 

我怎样才能以干净的方式做到这一点?

我是这样做的吗?

(1/len(r))((r.sum() * y.sum()) / p.sum())

标签: pythonpandas

解决方案


我只能想到lambdafor sum 使代码更干净:

s = lambda x: x.sum()
(s(r)*s(y)/s(p))/len(r)

N = 5
p = pd.Series(np.random.random(N)) 
r = pd.Series([1,0,0,1,0]) 
y = pd.Series([1,0,0,0,1]) 

(s(r)*s(y)/s(p)) /N

推荐阅读