AGG

【Python 数据分析】groupby分组统计

不打扰是莪最后的温柔 提交于 2020-08-12 04:37:49
目录 1.简介 2.实战演练 2.1 简单分组统计并聚合 2.2 分组-可迭代对象 2.3 其他轴上的分组 2.4 通过字典或者Series分组 2.5 通过函数分组 2.6 分组函数计算方法 2.7 多函数计算:agg() 1.简介 (1)根据某些条件将数据拆分成组 (2)对每个组独立应用函数 (3)将结果合并到一个数据结构中 Dataframe在行(axis=0)或列(axis=1)上进行分组,将一个函数应用到各个分组并产生一个新值,然后函数执行结果被合并到最终的结果对象中。 df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs) 2.实战演练 2.1 简单分组统计并聚合 import pandas as pd import numpy as np df = pd.DataFrame({'科目' : ['语文', '语文', '语文', '数学','数学'], '姓名' : ['Jack', 'Lucy', 'Alice', 'Mark', 'Jhon'], '性别' : ['man', 'woman', 'woman', 'man', 'man'], '成绩' : [85, 90, 70, 60, 100]})

经典SQL语句大全

落爺英雄遲暮 提交于 2020-08-12 03:48:36
基础篇 1 、说明:创建数据库 CREATE DATABASE database-name 2 、说明:删除数据库 drop database dbname 3 、说明:备份 sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4 、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],.. ) 根据已有的表创建新表: A : create table tab_new like tab_old ( 使用旧表创建新表 ) B : create table tab_new as select col1,col2… from tab_old definition only 5 、说明:删除新表 drop table tabname 6 、说明:增加一个列 Alter table tabname add column col type 注: 列增加后将不能删除。 DB2 中列加上后数据类型也不能改变

设计模式(17) 迭代器模式

穿精又带淫゛_ 提交于 2020-08-11 21:36:20
迭代器模式 基于IEnumerable的实现 使用场景 迭代器模式的优缺点 迭代器模式 迭代器模式用于顺序访问集合对象的元素,而不需要知道集合对象的底层表示。Java和.Net等语言已经将迭代器作为其内部语法元素,比如在C#中,集合对象只需要实现IEnumberable接口,然后就可以用foreach来遍历了。 迭代器模式提示我们要从使用者的角度考虑如何设计接口,如何对外提供访问内部对象的方式。即便我们组织的对象系统内部结构很复杂,但对于客户程序而言最简单的方式莫过于通过for /foreach循环依次遍历,至于遍历过程中的次序、分类筛选等则由目标类型自己封装。 GOF对迭代器模式描述为: Provide a way to access the elements of an aggregate objectsequentially without exposing its underlying representation. — Design Patterns : Elements of Reusable Object-Oriented Software UML类图: 代码实现 //迭代器接口 public interface IIterator<T> { T Next(); bool HasNext(); } //具体迭代器 public class

mysql使用count()执行select报错:ERROR 1140 (42000) In agg

て烟熏妆下的殇ゞ 提交于 2020-08-11 20:56:47
问题 mysql使用count()执行select报错:ERROR 1140 (42000) In aggregated query without GROUP BY 原因 mysql的sql_mode默认开启了only_full_group_by模式 解决方法 命令解决(临时生效) 查看sql_mode show variables like '%sql_mode'; show session variables like '%sql_mode%'; show global variables like '%sql_mode%'; 修改sql_mode set global sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'; set session sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'; 配置文件解决(永久修改) vim /etc/my.cnf修改最后面一行 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 来源: oschina 链接: https://my.oschina.net/u/4344310/blog/4423744

深入浅出Fetch API 带你入解应用场景及适用问题

人盡茶涼 提交于 2020-08-07 01:29:34
Fetch API提供了一个fetch()方法,它被定义在BOM的window对象中,你可以用它来发起对远程资源的请求。 该方法返回的是一个Promise对象,让你能够对请求的返回结果进行检索。 为了能够进一步的解释Fetch API,下面我们写一些代码具体介绍它的用法: 下面这个例子将会通过Flicker API来检索一些图片,并将结果插入到页面中。到目前为止, Fetch API还未被所有的浏览器支持。因此,如果你想体验这一技术,最好使用最新版本的Chrome浏览器。为了能够正确的调用Flicker API,你需要申请自己的API KEY,将其插入到代码中的适当位置,即your_api_key那个位置。 来看看第一个任务:我们使用API来从Flicker中检索一些有关“企鹅”的照片,并将它们展示在也没中,代码如下。 Promise, 当Promise被通过,它会返回一个Response对象,通过该对象的json()方法可以将结果作为JSON对象返回。response.json()同样会返回一个Promise对象,因此在我们的例子中可以继续链接一个then()方法。 为了能够和传统的XMLHttpRequest进行对比,我们使用传统的方法来编写一个同样功能的函数: 可以发现,主要的不同点在于:传统上我们会使用事件处理器,而不是Promise对象。

Flink SQL 的 9 个示例

本秂侑毒 提交于 2020-08-06 04:21:25
作者:贺小令(晓令) 本文由阿里巴巴技术专家贺小令分享,社区志愿者郑仲尼整理。文章基于 Flink 1.9 版本,从用户的角度来讲解 Flink 1.9 版本中 SQL 相关原理及部分功能变更,希望对大家有所帮助。主要内容分享以下三个部分: TableEnvironment 的设计与使用场景 Catalog 的设计以及 DDL 实践 Blink Planner 的几点重要改进及优化 TableEnvironment FLIP-32 中提出,将 Blink 完全开源,合并到 Flink 主分支中。合并后在 Flink 1.9 中会存在两个 Planner:Flink Planner 和 Blink Planner。 在之前的版本中,Flink Table 在整个 Flink 中是一个二等公民。而 Flink SQL 具备的易用性、使用门槛低等特点深受用户好评,越来越被重视,Flink Table 模块也因此被提升为一等公民。而 Blink 在设计之初就考虑到流和批的统一,批只是流的一种特殊形式,所以可以用同一个TableEnvironment来表述流和批。 TableEnvironment 整体设计 图1 新 Table Environment 整体设计 从图 1 中,可以看出,TableEnvironment 组成部分如下: flink-table-common

PostgreSQL 高级SQL(四) 滑动窗口函数

和自甴很熟 提交于 2020-08-05 23:37:24
本文是转载,原文地址是: https://www.jianshu.com/p/184419ee68c5 上章节我们讲述的窗口函数都属于静态窗口,然而我们很多场景是需要滑动窗口,比如我们需要查看这样的一张报表,这张报表包含国家名字,年份,GDP,当前年份与上一年、下一年的GDP均值,也就是说GDP均值这一列随着行数的推移,动态移动变化的,那么我们可以借助PG的滑动窗口来完成这个功能,SQL如下 SELECT country_name, "year", gdp, AVG ( gdp ) OVER ( PARTITION BY country_name ORDER BY "year" DESC ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING ) FROM country_gdp_year_final ff WHERE country_code IN ( 'CHN', 'JPN', 'USA', 'DEU', 'CAN', 'FRA' ) AND "year" BETWEEN 2012 AND 2017; (获取每年与前后俩年的均值GDP) preceding 中文意思:前面的 following 中文意思 :后面的 上面的 rows between 1 preceding and 1 following 定义的滑动窗口包含三行,当前行,当前行的前一行

如何用 Python 转换 Costco 数据?

点点圈 提交于 2020-08-05 16:42:17
0. 序言 Costco 是全球第一家会员制的仓储批发卖场,中文翻译过来叫「开市客」或「好市多」,始创于 1976 年的美国加州,截止到 2019 年 1 月,有 736 家门店,9270 万会员,年营业额 1310 亿美元,会员续费率 90%,全球拥有 24 万名员工。 2019 年 8 月 27 日,中国大陆第一家 Costco 在上海开业,因为人满为患,Costco 实行限流,将卖场人数控制在 2000 人以内,有人早上 4:30 就去排队。 Costco 把零售效率做到极致,是零售企业学习的标杆。 作为数据分析师,也要学习 Costco 死磕自己、为用户创造价值的精神。 下面,我们从网上读取一些 Costco 的股价数据,学习用 Python 对这些数据进行转换,为将来的数据分析做好准备。 首先,我们从网页中 读取 Costco 的历史股价数据。 然后,我们对数据进行 清洗 ,得到一个干净整洁的数据表格。 接下来,我们就可以正式开始对数据进行转换。 1. 如何转换为时间? 使用 transform() 函数,结合 dateutil 模块中的 parse() 函数,我们可以将字符转换为时间。 大部分常见的字符形式,都可以使用 parse() 进行转换,例如: 需要注意的是,要防止出现意外情况,例如:parse('80') 的结果是 1980 年的当前日期

pgsql 聚合函数array_to_string,ARRAY_AGG

北城以北 提交于 2020-07-28 17:27:33
array_to_string--将sql中的数组转为字符串 ARRAY_AGG--将sql中的数据转为数组处理 以下给大家一个简单的例子即可体会: 1.需求 2.数据库中原数据 1.png 3.sql的写法,以及运行结果 3.png 作者:那钱有着落吗 链接:https://www.jianshu.com/p/b5d1fd38e161 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: oschina 链接: https://my.oschina.net/u/4287847/blog/4273683

ClickHouse内核分析-MergeTree的Merge和Mutation机制

[亡魂溺海] 提交于 2020-07-27 14:52:26
注:以下分析基于开源 v19.15.2.2-stable 版本进行 引言 ClickHouse内核分析系列文章,继上一篇文章 MergeTree查询链路 之后,这次我将为大家介绍MergeTree存储引擎的异步Merge和Mutation机制。建议读者先补充上一篇文章的基础知识,这样会比较容易理解。 MergeTree Mutation功能介绍 在上一篇系列文章中,我已经介绍过ClickHouse内核中的MergeTree存储一旦生成一个Data Part,这个Data Part就不可再更改了。所以从MergeTree存储内核层面,ClickHouse就不擅长做数据更新删除操作。但是绝大部分用户场景中,难免会出现需要手动订正、修复数据的场景。所以ClickHouse为用户设计了一套离线异步机制来支持低频的Mutation(改、删)操作。 Mutation命令执行 ALTER TABLE [db.]table DELETE WHERE filter_expr; ALTER TABLE [db.]table UPDATE column1 = expr1 [, ...] WHERE filter_expr; ClickHouse的方言把Delete和Update操作也加入到了Alter Table的范畴中,它并不支持裸的Delete或者Update操作