python 实现分组求和与分组累加求和代码


Posted in Python onMay 18, 2020

我就废话不多说了,大家还是直接看代码吧!

# -*- encoding=utf-8 -*-
import pandas as pd
data=['abc','abc','abc','asc','ase','ase','ase']
num=[1,2,2,1,2,1,2]
df1=pd.DataFrame({'name':data,'num':num})
print(df1)

df1['mmm']=df1['num']
df2=df1.groupby(['name', 'num'], as_index=False).count()
print(df2)
df2.sort_values(['name', 'num'], ascending=[1, 1], inplace=True)
print(df2)
df2['sum']=df2.groupby(['name'])['mmm'].cumsum()
print(df2)
kk=df2.groupby(['name'],as_index=False)['num'].sum()
print(kk)
df3 = pd.merge(df2, kk, on='name', how='left',)
print(df3)
df3['ratio']=df3['sum']/df3['num_y']
df3.columns = ['name', 'num', 'mmm', 'sum','numsum','ratio']
print(df3)
df4=df3.groupby(['mmm'],as_index=False)['ratio'].mean()

print(df4)

运行:

name num
0 abc  1
1 abc  2
2 abc  2
3 asc  1
4 ase  2
5 ase  1
6 ase  2
 name num mmm
0 abc  1  1
1 abc  2  2
2 asc  1  1
3 ase  1  1
4 ase  2  2
 name num mmm
0 abc  1  1
1 abc  2  2
2 asc  1  1
3 ase  1  1
4 ase  2  2
 name num mmm sum
0 abc  1  1  1
1 abc  2  2  3
2 asc  1  1  1
3 ase  1  1  1
4 ase  2  2  3
 name num
0 abc  3
1 asc  1
2 ase  3
 name num_x mmm sum num_y
0 abc   1  1  1   3
1 abc   2  2  3   3
2 asc   1  1  1   1
3 ase   1  1  1   3
4 ase   2  2  3   3
 name num mmm sum numsum   ratio
0 abc  1  1  1    3 0.333333
1 abc  2  2  3    3 1.000000
2 asc  1  1  1    1 1.000000
3 ase  1  1  1    3 0.333333
4 ase  2  2  3    3 1.000000
  mmm   ratio
0  1 0.555556
1  2 1.000000

Process finished with exit code 0

补充知识:python项目篇-对符合条件的某个字段进行求和,聚合函数annotate(),aggregate()函数

对符合条件的某个字段求和

需求是,计算每日的收入和

1、

new_dayincome = request.POST.get("dayincome_time", None)

    # total_income = models.bathAccount.objects.filter(dayBath=new_dayincome).aggregate(nums=Sum('priceBath'))
    total_income = models.bathAccount.objects.values('priceBath').annotate(nums=Sum('priceBath')).filter(dayBath=new_dayincome)
    print("total_income",total_income[0]['nums'])

输出结果:total_income 132

2、

from django.db.models import Sum,Count
new_dayincome = request.POST.get("dayincome_time", None)

    total_income = models.bathAccount.objects.filter(dayBath=new_dayincome).aggregate(nums=Sum('priceBath'))
    print("total_income",total_income['nums'])

输出结果:total_income 572

第二种输出的是正确的数字

以上这篇python 实现分组求和与分组累加求和代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
Python实现获取域名所用服务器的真实IP
Oct 25 Python
Python数组定义方法
Apr 13 Python
python读取二进制mnist实例详解
May 31 Python
pygame实现弹力球及其变速效果
Jul 03 Python
使用Python实现租车计费系统的两种方法
Sep 29 Python
python得到单词模式的示例
Oct 15 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
softmax及python实现过程解析
Sep 30 Python
Python3实现二叉树的最大深度
Sep 30 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
Django ORM实现按天获取数据去重求和例子
May 18 #Python
如何实现更换Jupyter Notebook内核Python版本
May 18 #Python
python mysql自增字段AUTO_INCREMENT值的修改方式
May 18 #Python
Pycharm安装并配置jupyter notebook的实现
May 18 #Python
Django中的AutoField字段使用
May 18 #Python
jupyter notebook运行命令显示[*](解决办法)
May 18 #Python
jupyter notebook的安装与使用详解
May 18 #Python
You might like
提高PHP编程效率的方法
2013/11/07 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
php中JSON的使用方法
2015/04/30 PHP
php实现图片上传并进行替换操作
2016/03/15 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
python实现计算器简易版
2020/12/17 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
2014年班主任自我评价范文
2014/04/23 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
安全教育培训制度
2015/08/06 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android