• Pandas---8.聚合与分组


    一、分组

    1.分组运算的过程为:拆分-应用-合并

    1. 拆分阶段:Series/DataFrame等数据根据你提供的一个或者多个键,被拆分为多组
    2. 应用阶段:根据你提供的一个函数应用到这些分组上
    3. 合并阶段:将函数的执行结果合并到最终结果中

    2.分组中有两种数据:源数据(被分组的对象),分组数据(用于划分源数据的)

    1. 源数据每一行(axis=0) 对应于分组数据中的一个元素。分组数据中每一个唯一值对应于一个分组。
    2. 当分组数据也在源数据中时,可以直接通过指定列名来指定分组数据(值相同的为同一组)。

    3.Series/DataFrame.groupby

    Series/DataFrame.groupby()方法是分组方法:

    Series/DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, 
      group_keys=True, squeeze=False, **kwargs)
    

    参数:

    1. by:一个mapping functionlist of function、一个字典、一个序列、一个元组、一个list of column name。它指定了分组数据。

      1. 如果传入了函数,则在每个index value上调用函数来产生分组数据

      2. 如果是Series或者字典,则根据每个index value在字典/Series中的值来产生分组数据

      3. 如果是个column label,则使用该label抽取出来的一列数据产生分组数据

      4. 如果是个column labellist,则使用一组column label抽取出来的多列数据作为分组数据。

      5. 如果是个序列,则它直接指定了分组数据。

      6. 如果是个序列的序列,则使用这些序列拼接成一个MulitiIndex,然后根据这个MultiIndex替换掉index后,根据label value来分组。(事实上并没有替换,只是用于说明这个过程)

        如果axis=1,则index label替换成column label

    2. axis:指定沿着哪个轴分组。可以为0/'index',表示沿着 0轴。可以为1/'columns',表示沿着 1轴

    3. level:一个整数、level name或者其序列。如果axis是个MultiIndex,则在指定级别上的索引来分组

    4. as_index:一个布尔值。如果为True,则将group label作为输出的index。如果为False,则输出是SQL风格的分组(此时分组的key作为一列,而不是作为index)。Series中,该参数必须为True

    5. sort:一个布尔值。如果为True,则对分组的键进行排序。

    6. group_keys:一个布尔值。如果为True,且调用了函数来决定分组,则添加分组键来区分不同的数据(否则你不知道每一行数据都对应于哪里)

    7. squeeze:一个布尔值。如果为True,则尽可能的缩减结果的类型。

    该函数返回一个GroupBy对象。

    2. GroupBy对象

    3. 分组级运算

    4. 透视表和交叉表

  • 相关阅读:
    Django超级用户
    12.23站立会议
    12.22站立会议
    12.21站立会议
    用户场景分析
    12.20站立会议
    12.19站立会议
    12.18战略会议
    四则运算
    MongoEngine中文文档
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/12108490.html
Copyright © 2020-2023  润新知