zoukankan      html  css  js  c++  java
  • python groupby agg()

    • 构造数据
      import pandas as pd
       
      df = pd.DataFrame({'Country':['China','China', 'India', 'India', 'America', 'Japan', 'China', 'India'], 
                         'Income':[10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000],
                          'Age':[5000, 4321, 1234, 4010, 250, 250, 4500, 4321]})
      

        结果如下:

       Age  Country  Income
      0  5000    China   10000
      1  4321    China   10000
      2  1234    India    5000
      3  4010    India    5002
      4   250  America   40000
      5   250    Japan   50000
      6  4500    China    8000
      7  4321    India    5000
      
    • 单列分组

    df_gb = df.groupby('Country')
    for index, data in df_gb:
        print(index)
        print(data)
    输出
    America
       Age  Country  Income
    4  250  America   40000
    China
        Age Country  Income
    0  5000   China   10000
    1  4321   China   10000
    6  4500   China    8000
    India
        Age Country  Income
    2  1234   India    5000
    3  4010   India    5002
    7  4321   India    5000
    Japan
       Age Country  Income
    5  250   Japan   50000
    

      

    •     多列分组
      df_gb = df.groupby(['Country', 'Income'])
      for (index1, index2), data in df_gb:
          print((index1, index2))
          print(data)
       
      输出
       
      ('America', 40000)
         Age  Country  Income
      4  250  America   40000
      ('China', 8000)
          Age Country  Income
      6  4500   China    8000
      ('China', 10000)
          Age Country  Income
      0  5000   China   10000
      1  4321   China   10000
      ('India', 5000)
          Age Country  Income
      2  1234   India    5000
      7  4321   India    5000
      ('India', 5002)
          Age Country  Income
      3  4010   India    5002
      ('Japan', 50000)
         Age Country  Income
      5  250   Japan   50000
      

       聚合函数,对分组后数据进行聚合

    •  

      df_agg = df.groupby('Country').agg(['min', 'mean', 'max'])
      print(df_agg)
      输出
         Age                    Income                     
                min         mean   max    min          mean    max
      Country                                                     
      America   250   250.000000   250  40000  40000.000000  40000
      China    4321  4607.000000  5000   8000   9333.333333  10000
      India    1234  3188.333333  4321   5000   5000.666667   5002
      Japan     250   250.000000   250  50000  50000.000000  50000
      

      对分组后的部分列进行聚合

    • num_agg = {'Age':['min', 'mean', 'max']}
      print(df.groupby('Country').agg(num_agg))
      输出
        Age                   
                min         mean   max
      Country                         
      America   250   250.000000   250
      China    4321  4607.000000  5000
      India    1234  3188.333333  4321
      Japan     250   250.000000   250
      

        

      num_agg = {'Age':['min', 'mean', 'max'], 'Income':['min', 'max']}
      print(df.groupby('Country').agg(num_agg))
      输出
            Age                    Income       
                min         mean   max    min    max
      Country                                       
      America   250   250.000000   250  40000  40000
      China    4321  4607.000000  5000   8000  10000
      India    1234  3188.333333  4321   5000   5002
      Japan     250   250.000000   250  50000  50000
      

        

        

  • 相关阅读:
    javascript 事件冒泡
    Java 理论与实践: 正确使用 Volatile 变量
    Concurrency,Java 并发
    POJ2379 ACM Rank Table 模拟题
    HDU1711Number Sequence KMP
    POJ1061 青蛙的约会 扩展GCD
    HDU2523 SORT AGAIN HASH
    HDU2087剪花布条 KMP
    HDU3736 Cyclic Nacklace KMP
    HDU1709The Balance 母函数
  • 原文地址:https://www.cnblogs.com/qijiujiu/p/13524553.html
Copyright © 2011-2022 走看看