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僵尸进程产生的原因
Jul 21 Python
快速查询Python文档方法分享
Dec 27 Python
Python学生信息管理系统修改版
Mar 13 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
pandas 将索引值相加的方法
Nov 15 Python
Python正则匹配判断手机号是否合法的方法
Dec 09 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
弄清Pytorch显存的分配机制
Dec 10 Python
Python基于百度AI实现抓取表情包
Jun 27 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
基于pip install django失败时的解决方法
2018/06/12 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
介绍一下#error预处理
2015/09/25 面试题
盛大笔试题
2016/11/05 面试题
总经理职责范文
2013/11/08 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
高考寄语大全
2014/04/08 职场文书
青春励志演讲稿
2014/04/29 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
公司放假通知怎么写
2015/04/15 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL