python - 使用多个熊猫系列的加权和?
问题描述
我有 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())
解决方案
我只能想到lambda
for 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
推荐阅读
- python - gcloud 崩溃(IOError):[Errno 0] gcloud 应用部署时出错
- python - 用于从序列中返回单个未打包值或多个打包值的 Python 语法
- android-studio - 在发布模式下安装应用程序时出错
- java - 如何用java上下滚动?
- excel - XPATH - 查找子项具有特定值的元素
- cassandra - NoHostAvailableException - Spark-Cassandra-Connector
- matlab - 迭代地将行添加到 parfor 循环内的文件中
- solr - Solr 6.6 与 Solr 7.1 中的 fieldLengh 和 avgFieldLength 有什么区别
- node.js - 哪个 AWS 服务通过 Lambda 记录用户应用程序交互事件,也许是 Cloudwatch?
- javascript - 动态切换 Div 滑块