Python 单个数据帧中不同列上的多个操作
单个数据帧中不同列上的多个操作 我有一个如下所述的数据帧:Python 单个数据帧中不同列上的多个操作,python,python-3.x,pandas,group-by,list-comprehension,Python,Python 3.x,Pandas,Group By,List Comprehension,单个数据帧中不同列上的多个操作 我有一个如下所述的数据帧: 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
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
将
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
将
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