在单个Datafram中对不同列执行多个操作

2024-04-23 15:41:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在单个数据帧中对不同列执行多个操作

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

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

Tags: 数据cntval1val2val3val4pno
1条回答
网友
1楼 · 发布于 2024-04-23 15:41:54

对每列使用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

相关问题 更多 >