对单个数据框的不同列进行多次操作
我有一个如下所述的数据框:
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
结果:
PNO VAL1 VAL2 VAL3 VAL4 CNT
100 98 15 54 52 4
2000 58 21 85 89 3
30000 96 24 52 25 4
答案 0 :(得分:2)
在每列上将groupby
和agg
与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