精华内容
下载资源
问答
  • group_m.agg(['sum','mean','std']) Out[22]: sum mean std School S_1 956.2 63.746667 23.077474 S_2 1191.1 59.555000 17.589305
  • def agg_f(f_mul,name,*args,**kwargs): def wrapper(x): return f_mul(x,*args,**kwargs) wrapper.__name__ = name return wrapper new_f = agg_f(f_test,'at_least_one_in_50_52',50,52) ...
  • PostgreSql 聚合函数string_agg与array_agg

    万次阅读 2017-12-26 15:23:11
    string_agg,array_agg 这两个函数的功能大同小异,只不过合并数据的类型不同。 https://www.postgresql.org/docs/9.6/static/functions-aggregate.htmlarray_agg(expression) 把表达式变成一个数组 一般配合 array...

    string_agg,array_agg 这两个函数的功能大同小异,只不过合并数据的类型不同。
    https://www.postgresql.org/docs/9.6/static/functions-aggregate.html

    array_agg(expression)
    把表达式变成一个数组 一般配合 array_to_string() 函数使用
    
    string_agg(expression, delimiter)
    直接把一个表达式变成字符串
    

    案例:

    create table jinbo.employee(empno smallint, ename varchar(20), job varchar(20), mgr smallint, hiredate date, sal bigint, comm bigint, deptno smallint);
    
    insert into jinbo.employee(empno,ename,job, mgr, hiredate, sal, comm, deptno) values (7499, 'ALLEN', 'SALEMAN', 7698, '2014-11-12', 16000, 300, 30);
    
    insert into jinbo.employee(empno,ename,job, mgr, hiredate, sal, comm, deptno) values (7566, 'JONES', 'MANAGER', 7839, '2015-12-12', 32000, 0, 20);
    
    insert into jinbo.employee(empno,ename,job, mgr, hiredate, sal, comm, deptno) values (7654, 'MARTIN', 'SALEMAN', 7698, '2016-09-12', 12000, 1400, 30);
    
    select * from jinbo.employee;
     empno | ename  |   job   | mgr  |  hiredate  |  sal  | comm | deptno 
    -------+--------+---------+------+------------+-------+------+--------
      7499 | ALLEN  | SALEMAN | 7698 | 2014-11-12 | 16000 |  300 |     30
      7566 | JONES  | MANAGER | 7839 | 2015-12-12 | 32000 |    0 |     20
      7654 | MARTIN | SALEMAN | 7698 | 2016-09-12 | 12000 | 1400 |     30
    (3 rows)
    

    1.查询同一个部门下的员工且合并起来

    方法1:
    select deptno, string_agg(ename, ',') from jinbo.employee group by deptno;
    
     deptno |  string_agg  
    --------+--------------
         20 | JONES
         30 | ALLEN,MARTIN
    
    方法2:
    select deptno, array_to_string(array_agg(ename),',') from jinbo.employee group by deptno;
     deptno | array_to_string 
    --------+-----------------
         20 | JONES
         30 | ALLEN,MARTIN
    

    2、在1条件的基础上,按ename 倒叙合并

    select deptno, string_agg(ename, ',' order by ename desc) from jinbo.employee group by deptno;
     deptno |  string_agg  
    --------+--------------
         20 | JONES
         30 | MARTIN,ALLEN
    
    

    3、按数组格式输出使用 array_agg

    select deptno, array_agg(ename) from jinbo.employee group by deptno;
     deptno |   array_agg    
    --------+----------------
         20 | {JONES}
         30 | {ALLEN,MARTIN}
    
    

    4、array_agg 去重元素,例如查询所有的部门

    select array_agg(distinct deptno) from jinbo.employee;
    array_agg 
    -----------
     {20,30}
    (1 row)
    
    #不仅可以去重,还可以排序
    
    select array_agg(distinct deptno order by deptno desc) from jinbo.employee;
     array_agg 
    -----------
     {30,20}
    (1 row)
    

    5、array_agg 排序再array取值,例如查询每个部门第一个入职的人

    select deptno, (array_agg(ename order by hiredate asc))[1] from jinbo.employee group by deptno;
     deptno | array_agg 
    --------+-----------
         20 | JONES
         30 | ALLEN
    
    展开全文
  • Agg根据矢量数据在内存中生成像素图像。 关于该项目 反颗粒几何(AGG)是一个开放源代码的免费图形库,以工业标准C ++编写。 “许可”页面上描述了AGG的使用条款和条件。 AGG不依赖任何图形API或技术。 基本上,您...
  • Agg-Sharp 是 Agg 的 .NET 移植。AGG 是一个开源的二维图形引擎。它提供一套结合了亚像素(subpixel accuracy)技术与反走样(anti-aliasing)技术的图形算法,实现高效率、高质量的二维图形处理功能。AGG 的另一个...
  • poppler-agg 自述文件 介绍 poppler-agg 旨在为 poppler ( ) 库提供 AGG ( ) 渲染后端。 git 存储库包含两个分支。 (a) “master”,它是官方 poppler 存储库的克隆,以及 (b) “agg_support”,我用它来添加(你猜...
  • AGG简介

    千次阅读 2018-11-14 06:39:57
    AGG是一个开源、高效的跨平台2D图形库。AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高(自称超过GDI+) 使用前AGG的准备工作 下载AGG库,它的家在...

    AGG是一个开源、高效的跨平台2D图形库。AGG的功能与GDI+的功能非常类似,但提供了比GDI+更灵活的编程接口,其产生的图形的质量也非常高(自称超过GDI+)

    使用前AGG的准备工作

    1. 下载AGG库,它的家在http://www.antigrain.com,目前最高版本是AGG2.5
    2. 解压,后面以[AGG]表示AGG的解压目录.
    3. 把[AGG]\include加入到include搜索目录中
    4. 把[AGG]\src里所有cpp加入到项目中(或者用makefile一起编译)
    5. 另外,AGG还有一些其它组件,用到时也要把它们(都是些.h和.cpp文件)加入项目:
      • 如果要用AGG的控件和窗体,要加入[AGG]\src\ctrl\*.cpp和[AGG]\src\platform\<OS>\*.cpp,头文件在[AGG]\include\ctrl和[AGG]\include\platform里
      • 如果要用到TrueType字体显示,要加入[AGG]\font_win32_tt目录下的源码和头文件。利用freetype库,则是[AGG]\font_freetype目录。
      • 如果要用到Generic Polygon Clipper库(一个区域剪裁计算库),加入[AGG]\gpc目录下的源码和头文件。

    AGG图形显示原理见下图:

    其中:

    1. Vertex Source 顶点源,里面存放了一堆2D顶点以及对应的命令,如"MoveTo"、"LineTo"等。
    2. Coordinate conversion pipeline 坐标转换管道,它可以变换Vertex Source中的顶点,比如矩阵变换,轮廓提取,转换为虚线等。
    3. Scanline Rasterizer 把顶点数据(矢量数据)转换成一组水平扫描线,扫描线由一组线段(Span)组成,线段(Span)包含了起始位置、长度和覆盖率(可以理解为透明度)信息。AGG的抗锯齿(Anti-Aliasing)功能也是在这时引入的。
    4. Renderers 渲染器,渲染扫描线(Scanline)中的线段(Span),最简单的就是为Span提供单一颜色,复杂的有多种颜色(如渐变)、使用图像数据、Pattern等。
    5. Rendering Buffer 用于存放像素点阵数据的内存块,这里是最终形成的图像数据。

    要理解AGG的工作原理,先看一段代码:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    #include "agg_basics.h"

        #include "agg_rendering_buffer.h"

        #include "agg_rasterizer_scanline_aa.h"

        #include "agg_scanline_u.h"

        #include "agg_renderer_scanline.h"

        #include "agg_pixfmt_rgb.h"

        #include "platform/agg_platform_support.h"

        #include "agg_ellipse.h"

        #include "agg_conv_contour.h"

        #include "agg_conv_stroke.h"

          

        class the_application : public agg::platform_support

        {

        public:

            the_application(agg::pix_format_e format, bool flip_y) :

                agg::platform_support(format, flip_y)

            {

            }

          

            virtual void on_draw()

            {

                //Rendering Buffer

                agg::rendering_buffer &rbuf = rbuf_window();

                agg::pixfmt_bgr24 pixf(rbuf);

                

                // Renderers

                typedef agg::renderer_base<agg:agg:agg:agg:agg:agg:agg:agg::pixfmt_bgr24> renderer_base_type;

                renderer_base_type renb(pixf);

          

                typedef agg::renderer_scanline_aa_solid<renderer_base_type> renderer_scanline_type;

                renderer_scanline_type rensl(renb);

                

                // Vertex Source

                agg::ellipse ell(100,100,50,50);

                

                // Coordinate conversion pipeline

                typedef agg::conv_contour<agg:agg:agg:agg:agg:agg:agg:agg::ellipse> ell_cc_type;

                ell_cc_type ccell(ell);

                

                typedef agg::conv_stroke<ell_cc_type> ell_cc_cs_type;

                ell_cc_cs_type csccell(ccell);

                

                // Scanline Rasterizer

                agg::rasterizer_scanline_aa<> ras;

                agg::scanline_u8 sl;

                

                // Draw

                renb.clear(agg::rgba8(255,255,255));

                for(int i=0; i<5; i++)

                {

                    ccell.width(i*20);

                    ras.add_path(csccell);

                    rensl.color( agg::rgba8(0,0,i*50));

                    agg::render_scanlines(ras,sl,rensl);

                }

            }

        };

          

        int agg_main(int argc, char* argv[])

        {

            the_application app(agg::pix_format_bgr24, false);

            app.caption("AGG Example. Anti-Aliasing Demo");

          

            if(app.init(600, 400, agg::window_resize))

            {

                return app.run();

            }

            return -1;

        }</ell_cc_type></agg:agg:agg:agg:agg:agg:agg:agg::ellipse></renderer_base_type></agg:agg:agg:agg:agg:agg:agg:agg::pixfmt_bgr24>

    编译这段代码的方法是(以VC为例):

    1. 新建空白GUI项目(就是有WinMain的项目)
    2. 把[AGG]\src里所有*.cpp加入到项目中
    3. 把[AGG]\src\platform\Win32\*.cpp加入到项目中
    4. Ctrl+C/Ctrl+V 上面的代码
    5. 编译!

    显示效果:

    20090816015959667

    我们先不管agg_main及agg::platform_support的问题,实际上agg::platform_support只是AGG给我们方便显示AGG图形用的,真正应用时几乎不会用到(后面会讲到怎样把AGG图形画到HDC上)。

    现在我们只需要知道这个框架可以生成一个窗体,当窗体重画时会调用virtual void on_draw()就行了。

    现在直接从on_draw()开始看

    1. 通过rbuf_window()方法得到一个agg::rendering_buffer,它就是“Rendering Buffer”,是一块用于存放图像的内存块。通过pixfmt_bgr24包装,我们就可以以像素为单位存取图像。
    2. agg::renderer_base和agg::renderer_scanline_aa_solid都属于"渲染器Renderer"。renderer_base为底层渲染器,它支撑起所有的高层渲染器。这里的renderer_scanline_aa_solid就是一个高层渲染器。
    3. agg::ellipse是“顶点源Vertex Source”,这个顶点源呈现的是一个圆形。
    4. agg::conv_contour和agg::conv_stroke作为“坐标转换管道Coordinate conversion pipeline”,conv_contour扩展轮廓线,conv_stroke只显示轮廓线(如果没有conv_stroke就会显示实心圆,可以去掉试试)。
    5. agg::rasterizer_scanline_aa<>就是“Scanline Rasterizer”啦。
    6. agg::render_scanlines函数执行这个AGG工作流程。
    展开全文
  • Dataframe:one twoa 1 xb 1 yc 2 yd 2 ze 3 zgrp = DataFrame.groupby('one')grp.agg(lambda x: ???) #or equivalent functionDesired output from grp.agg:one two1 x|y2 y|z3 zMy agg function be...

    Dataframe:

    one two

    a 1 x

    b 1 y

    c 2 y

    d 2 z

    e 3 z

    grp = DataFrame.groupby('one')

    grp.agg(lambda x: ???) #or equivalent function

    Desired output from grp.agg:

    one two

    1 x|y

    2 y|z

    3 z

    My agg function before integrating dataframes was "|".join(sorted(set(x))). Ideally I want to have any number of columns in the group and agg returns the "|".join(sorted(set()) for each column item like two above. I also tried np.char.join().

    Love Pandas and it has taken me from a 800 line complicated program to a 400 line walk in the park that zooms. Thank you :)

    解决方案

    You were so close:

    In [1]: df.groupby('one').agg(lambda x: "|".join(x.tolist()))

    Out[1]:

    two

    one

    1 x|y

    2 y|z

    3 z

    Expanded answer to handle sorting and take only the set:

    In [1]: df = DataFrame({'one':[1,1,2,2,3], 'two':list('xyyzz'), 'three':list('eecba')}, index=list('abcde'), columns=['one','two','three'])

    In [2]: df

    Out[2]:

    one two three

    a 1 x e

    b 1 y e

    c 2 y c

    d 2 z b

    e 3 z a

    In [3]: df.groupby('one').agg(lambda x: "|".join(x.order().unique().tolist()))

    Out[3]:

    two three

    one

    1 x|y e

    2 y|z b|c

    3 z a

    展开全文
  • string_agg 与array_agg

    千次阅读 2019-07-31 16:30:23
    string_agg 数据 imos=# select res_id, res_name from test; res_id | res_name --------+---------------- 1 | Root 10001 | EC_PAG 10002 | EC_PAG_GUOBIAO (3 rows) 普通string_agg imos=# selec...

    string_agg

    实例1

    • 数据
    imos=# select res_id, res_name from test;
     res_id |    res_name
    --------+----------------
          1 | Root
      10001 | EC_PAG
      10002 | EC_PAG_GUOBIAO
    (3 rows)
    
    • 普通string_agg
    imos=# select string_agg(res_name,';') from test;
             string_agg
    ----------------------------
     Root;EC_PAG;EC_PAG_GUOBIAO
    (1 row)
    
    • 带有order by 的string_agg
    imos=# select string_agg(res_name,';' order by res_name ) from test;
             string_agg
    ----------------------------
     EC_PAG;EC_PAG_GUOBIAO;Root
    (1 row)
    
    

    实例2

    • 数据
    postgres=# create table test(id int,name varchar(20));
    CREATE TABLE
    postgres=# insert into test values(1,'a');
    INSERT 0 1
    postgres=# insert into test values(1,'b');
    INSERT 0 1
    postgres=# insert into test values(1,'c');
    INSERT 0 1
    postgres=# insert into test values(2,'d');
    INSERT 0 1
    postgres=# insert into test values(2,'e');
    INSERT 0 1
    postgres=# select * from test;
     id | name
    ----+------
      1 | a
      1 | b
      1 | c
      2 | d
      2 | e
    (5 rows)
    
    
    • 不分组
    
    postgres=# select string_agg(name,',') from test;
     string_agg
    ------------
     a,b,c,d,e
    (1 row)
    
    • 分组
    postgres=# select id ,  string_agg(name,',') from test group by id;
     id | string_agg
    ----+------------
      2 | d,e
      1 | a,b,c
    (2 rows)
    
    

    array_agg

    imos=# select array_agg(res_name) from test;
    ERROR:  could not find array type for data type imos_name
    imos=#
    imos=#
    imos=#
    imos=# select array_agg(res_name::varchar) from test;
              array_agg
    ------------------------------
     {Root,EC_PAG,EC_PAG_GUOBIAO}
    (1 row)
    
    imos=#
    imos=# select array_agg(res_name::varchar order by res_name ) from test;
              array_agg
    ------------------------------
     {EC_PAG,EC_PAG_GUOBIAO,Root}
    (1 row)
    
    
    展开全文
  • Agg学习资料

    2013-07-11 08:10:11
    包括: 基于AGG算法库的通用图形接口设计.pdf AGG绝好资料.doc 介绍和推荐AGG.doc
  • Elasticsearch AGG.pdf

    2021-08-26 13:41:36
    Elasticsearch AGG.pdf
  • agg学习手册

    2012-07-02 19:56:01
    学习agg的好文档,详细介绍了AGG的图形变换流程,很好的学习手册
  • AGG使用入门

    2013-12-31 18:22:54
    AGG使用入门,mht格式文件,学完基本上可以上手了
  • Agg:Windows上GCC编译Agg

    2019-09-22 09:27:28
    本文记录用TDM64-GCC(MingGW的变种)编译Agg2.5的过程。操作系统win8.1 64位,编译器TDM64-gcc。 首先,TDM64-GCC只提供了一套编译环境,还有一些posix命令没有提供,例如ls,rm等,简单的办法就是装Git,有一个...
  • agg在windows平台编译

    2018-03-18 13:48:36
    AGG在windows系统visual studio 2013平台编译及开发;已经上传了编译成功的AGG.lib, 使用时将include文件夹添加到链接库即可。
  • array_agg(expression) 把表达式变成一个数组 一般配合 array_to_string() 函数使用 string_agg(expression, delimiter) 直接把一个表达式变成字符串 以某个字段group by分组,查询多个字段 (存在某些字段有...
  • AGG入门

    万次阅读 2013-08-16 14:06:53
    AGG入门   一、配置开发环境   AGG入门(一) - 配置开发环境 AGG是一个高效的、高质量的、开源的矢量图形库,类似的有:GTK+的Cairo,Microsoft的GDI+。在三者中,AGG的性能是最高的(不讨论Skia和...
  • string_agg_SQL中STRING_AGG函数的概述

    千次阅读 2020-07-25 16:45:54
    string_agg In this article, we will explore the STRING_AGG function in SQL and we will also reinforce our learning with various examples. STRING_AGG function can be counted as a new member ...
  • 1、函数:string_agg('' , '') 把字符串拼接成一行 ,例如: select string_agg(name, ',') from user 2、如果有参数不是字符串格式,可以转化一下,比如: id||'' select string_agg( id||'' , ',')from user...
  • pandas groupby agg

    2021-08-27 03:32:58
    pandas groupby agg使用方法简单总结
  • pandas 聚合函数agg

    千次阅读 2020-06-28 16:24:51
    今天看到pandas的聚合函数agg,比较陌生,平时的工作中处理数据的时候使用的也比较少,为了加深印象,总结一下使用的方法,其实还是挺好用的。 DataFrame.agg(func,axis = 0,* args,** kwargs) func : 函数,...
  • spark agg算子使用

    千次阅读 2019-06-17 19:02:04
    1、agg(expers:column*) 返回dataframe类型 ,同数学计算求值 df.agg(max("age"), avg("salary")) df.groupBy().agg(max("age"), avg("salary")) 2、agg(exprs: Map[String, String])返回dataframe类型 ,同数学...
  • agg-adm-ahk-源码

    2021-03-06 18:38:00
    agg-adm-ahk
  • agg 列重命名

    2020-05-18 10:20:07
    pandas agg pandas版本迭代说明 不同列 同列重命名
  • AGG图形库资料

    2014-05-12 22:14:37
    保存&分享AGG图形库相关资料,文档+2.5源码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,063
精华内容 13,625
关键字:

agg