【问题标题】:Multiple operation on different columns in single Dataframe对单个 Dataframe 中的不同列进行多项操作
【发布时间】:2018-09-07 09:00:30
【问题描述】:

单个Dataframe中不同列的多重操作

我有一个如下所述的数据框:

PNO         VAL1    VAL2    VAL3    VAL4    CNT
100         45      15      35      98      1
100         25      85      24      65      1
100         85      74      74      75      1
100         98      36      36      84      1
100         74      54      54      52      0
2000        36      21      21      41      1
2000        54      25      45      52      1
2000        21      85      25      63      1
2000        58      98      85      89      0
30000       96      35      66      87      1
30000       32      24      87      54      1
30000       35      58      41      56      1
30000       24      96      52      25      1

我想创建一个结果数据框,它将对不同的列进行以下操作:

适用于每个 PNO

  1. 查找 VAL1 列的最大值
  2. 查找 VAL2 列的最小值
  3. 查找 VAL3 和 VAL4 列的最后一个值
  4. 求 CNT 列的总和

结果:

PNO         VAL1    VAL2    VAL3    VAL4    CNT
100         98      15      54      52      4
2000        58      21      85      89      3
30000       96      24      52      25      4

【问题讨论】:

    标签: python python-3.x pandas group-by list-comprehension


    【解决方案1】:

    在每列使用groupbyagg 以及dict 的规则

    In [32]: (df.groupby('PNO', as_index=False)
                .agg({'VAL1': 'max', 'VAL2': 'min', 
                      'VAL3': 'last', 'VAL4': 'last', 'CNT': 'sum'})
                 )
    Out[32]:
         PNO  VAL1  VAL2  VAL3  VAL4  CNT
    0    100    98    15    54    52    4
    1   2000    58    21    85    89    3
    2  30000    96    24    52    25    4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 2012-09-12
      相关资源
      最近更新 更多