[Pandas] 分组比例计算求和

f15d7ff3475940e29e5edafecc04cccc.png
美图欣赏2022/08/01

问题:在最近的需求开发中,有这么个分组比例计算求和问题,根据字段'CPN'进行分组,计算每一笔PO Line Actual CT2R * line 数量比重,取名为'Weighted(QTY)CT2R',再根据相同的'CPN'对每行'Weighted(QTY)CT2R'值进行汇总求和得到总的'Weighted(QTY)CT2R'值,如下图填充色为黄色的单元格即是我们所需要的目标值

32edad36b42042ddb5437b64402d5988.png

具体计算逻辑如下:

ae2745a2dbf04506b55d0a99c7cc4449.png

64f039b303ec41869e1cf8bac6fc6602.png

用Pandas代码实现上述需求如下所示: 

import pandas as pddf = pd.DataFrame([['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',10,90],['01-0989',200,50],['02-0437',20,80],['02-0437',20,80],['02-0437',20,80]],columns = ['cpn','po_line_qty','actual_ct2r'])# 根据字段'cpn'进行分组,对字段'po_line_qty'中的值进行求和,取名为total
total = df.groupby('cpn').agg({'po_line_qty':sum}).reset_index()
# 将字段'po_line_qty'更名为'total_po_line_qty'
total = total.rename(columns = {'po_line_qty':'total_po_line_qty'})
# df表与total表根据字段'cpn'进行左连接,取名为new_res
new_res = pd.merge(df,total,how='left',on='cpn')def weighted_qty_ct2r(row):scale = row['po_line_qty'] / row['total_po_line_qty']weighted_qty_ct2r = scale * row['actual_ct2r']return weighted_qty_ct2r# 生成字段'weighted_qty_ct2r'
new_res['weighted_qty_ct2r'] = new_res.apply(lambda row:weighted_qty_ct2r(row), axis=1)
# 根据字段'cpn'进行分组,对字段'weighted_qty_ct2r'中的值进行求和,取名为df_result
df_result = new_res.groupby('cpn').agg({'weighted_qty_ct2r':sum})

df

84df8b10dbcf4ebd9fdc23959a164ed4.png

total

e324f014465349d4b16f895e4adff000.png

new_res

54a590ff1fa84c878d5e6133c35fd4d3.png

df_result 

6eab7e2e10ca421394c3d96be6c7fcc0.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380323.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

SQL多字段分组求和

表结构 表数据 按店铺名称、发货时间分组并求总数 select g.[店铺名称],g.[发货时间],sum(g.[数量]) as 总数 from t_goods g GROUP BY g.[店铺名称],g.[发货时间] ORDER BY g.[店铺名称]

oracle 分析函数之分组求和、连续求和

最近在《sql cookbook》书上发现了名叫 分析函数 的东西,之前学 oracle 时没有印象,现在感觉其分析函数的功能相当强大、神奇, 就特意去找到了 chm 文档研究了一下,想要的朋友在本文末尾自行下载。 本文的例子都来源于 chm 文档…

简单卡通水

参考 https://roystan.net/articles/toon-water/ 源码 https://github.com/IronWarrior/ToonWaterShader 两张噪声图 挂在相机上,开启深度模式,使shader可以拿到深度图 using UnityEngine;public class ChangeCameraDepth : MonoBehaviour {public De…

编写简单的动画

UIImageView提供了实现简单动画的功能。比如要实现这样的功能: 跳动的火焰。基本思路是,一个数组,包含火焰跳动所需的多张图片。然后设置播放时间,并开始播放。UIImageView已经提供了这方面的机制,只需把图片数组交给它…

干货!学会这些动漫绘画素材,小白也能学会动漫绘画,简单易学!

百头练习 只画头部,着重对五官进行精细刻画。 女性头像练习 1 定出五官的位置,注意不管是什么角度,人的眼睛、嘴巴都是和鼻子呈90的。 2 画出五官。 3 注意线条有实有虚,把五官细化描绘出来,然后大致勾勒出头发的走向。 4 画出头发丝和眼珠。 5 添加光影,使头发…

制作简单的动画

1、使用jQuery&#xff08;annimate&#xff09;制作 a、首先要做简单的页面布局&#xff08;两个div加上10幅图&#xff09; <div id"img2"><input type "button" value"上一页" id"a" ></input><input type…

使用埋点方式对应用监控

在指标监控的世界里&#xff0c;应用和业务层面的监控有两种典型手段&#xff0c;一种是在应用程序里埋点&#xff0c;另一种是分析日志&#xff0c;从日志中提取指标。埋点的方式性能更好&#xff0c;也更灵活&#xff0c;只是对应用程序有一定侵入性&#xff0c;而分析日志的…

PHP傻瓜也能搭建自己框架

PHP最简单自定义自己的框架&#xff08;一&#xff09; PHP最简单自定义自己的框架创建目录结构&#xff08;二&#xff09; PHP最简单自定义自己的框架定义常量自动生成目录&#xff08;三&#xff09; PHP最简单自定义自己的框架控制器自动加载运行&#xff08;四&#xf…

日期计算器输入天数计算日期_计算日期范围内的活动

日期计算器输入天数计算日期 Todays challenge is to count how many guests stayed at a hotel, in a specific date range, based on the guest arrival and departure dates. 今天的挑战是&#xff0c;根据客人的到达和离开日期&#xff0c;计算在特定日期范围内在酒店住宿…

【nacos】Param ‘serviceName‘ is illegal, serviceName is blank

报错信息 解决方式 一&#xff1a;缺少依赖 SpringBoot2.4之后不会默认加载bootstrap.yaml&#xff1b;需要手动在pom中加入如下依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-boot…

PHP利用PCRE回溯次数限制绕过某些安全限制实战案例

目录 一、正则表达式概述 有限状态自动机 匹配输入的过程分别是&#xff1a; DFA&#xff08;确定性有限状态自动机&#xff09; NFA&#xff08;非确定性有限状态自动机&#xff09; 二、回溯的过程 三、 PHP 的 pcre.backtrack_limit 限制利用 例题一 回溯绕过步骤 &…

快手在线查询权重网站源码+接口

简介&#xff1a; 快手在线查询权重源码次快手权重查询优化了算法&#xff0c;修复很多之前抖音遇到的算法上的bug&#xff0c;不再有随机数&#xff0c;每一项都是根据实际情况固定输出&#xff08;包括评分&#xff0c;发作品时间等等&#xff09; 新增用户访问ip&#xff0…

抖音皮皮虾快手无水印解析软件

介绍&#xff1a; 有一张图是获取快手cookies的方法&#xff0c;就从&#xff1a;https://live.kuaishou.com/ 登录后取出&#xff0c;随便点个链接都有啦。 网盘下载地址&#xff1a; https://zijiewangpan.com/qfNsBxGVNEs 图片&#xff1a;

集合数据类型

非数字型 列表[]&#xff08;其他语言叫数组&#xff09; 注意点&#xff1a;第一个成员的索引编号为0&#xff0c;不能访问不存在的索引编号 # list是列表变量名&#xff0c;列表中有三个成员 list[刘备,曹操,关羽] print(list[0]) print(list[1]) print(list[2]) print(li…

粘福卡多次扫,绝对真实!!!

转载于:https://www.cnblogs.com/angusbao/p/10336782.html

集五福编程c语言,支付宝如何快速集齐5张福卡 支付宝2020集五福攻略技巧

1月13日&#xff0c;支付宝2020集五福活动正式开始&#xff0c;活动一直持续到1月24日&#xff0c;也就是除夕夜。今年支付宝集五福活动延续了往年的玩法&#xff0c;包括AR扫福字、蚂蚁森林浇水得福字等。在此基础上&#xff0c;今年支付宝带来了全新的全家福卡。所有集福卡的…

支付宝福卡破解——居中的ViewPager

支付宝福卡功能刚出来&#xff0c;我就对支付宝福卡的UI实现很感兴趣。第一是因为福卡的UI比较新颖而且不久前做的项目跟福卡UI有些类似&#xff0c;第二也是很想知道支付宝这样的大厂会不会更优雅地实现福卡的UI。 1、使用hierarchyviewer查看发现福卡的容器是com.alipay.and…

支付宝福卡破解——咻一咻的ui怎么实现

通过春节的无节操营销&#xff0c;支付宝的咻一咻功能让许多人手酸过、心酸过&#xff08;没能中敬业福&#xff09;&#xff0c;在吐槽之余好奇的程序员总会猜想这ui怎么实现的呢&#xff1f; 在不看smali代码的情况下应该都会猜想咻一咻的ui实现是这样的&#xff1a;点击一下…

JAVA实现微博财神卡自动换卡,秒福卡

不废话先看图 QQ20180209-071517.png Untitled2.gif 接下来是步骤 1.提取你新浪微博的cookie,简单吧&#xff01;2.安装JAVA环境 简单吧&#xff0c;自己百度吧&#xff01;3.修改代码重点&#xff0c;敲黑板 一共有两个文件 Posttijiao的49行和HttpLogin的54行,都改成你的co…

TCP协议的报头格式和滑动窗口

文章目录 TCP报头格式端口号序号和确认序号确认应答&#xff08;ACK&#xff09;机制超时重传机制 首部长度窗口大小报文类型URGACKSYNPSHFINRST 滑动窗口滑动窗口的大小怎么设定怎么变化滑动窗口变化问题 TCP报头格式 端口号 两个端口号比较好理解&#xff0c;通过端口号来找…