Python 如何在一个线性代码中实现期望输出?
我有下面给出的数据帧,我想在一个线性代码中实现输出。我的代码也随附Python 如何在一个线性代码中实现期望输出?,python,pandas,Python,Pandas,我有下面给出的数据帧,我想在一个线性代码中实现输出。我的代码也随附 df : -totscrd_n_r FRANK SCORE 1 0.748180912 2 0.288977296 3 0.233826294 4 0.199272093 5 0.175346525 1 0.162129932 2 0.152657008 3 0.144826844 4 0.136572409 5
df : -totscrd_n_r
FRANK SCORE
1 0.748180912
2 0.288977296
3 0.233826294
4 0.199272093
5 0.175346525
1 0.162129932
2 0.152657008
3 0.144826844
4 0.136572409
5 0.122732783
1 0.288984226
2 0.233826364
3 0.199273169
4 0.175346964
5 0.162130909
1 0.152657357
2 0.144827363
3 0.136572485
4 0.12273334
5 0.050275945
output : - TEMP3_10GRP
FRANK HIGH LOW
1 0.748180912 0.152657357
2 0.288977296 0.144827363
3 0.233826294 0.136572485
4 0.199272093 0.12273334
5 0.175346525 0.050275945
my code:-
TEMP3_10GRPH = pd.DataFrame(totscrd_n_r.groupby(['FRANK'])['SCORE'].max().reset_index())
TEMP3_10GRPH.rename(columns = {'SCORE':'HIGH'}, inplace = True)
TEMP3_10GRPL = pd.DataFrame(totscrd_n_r.groupby(['FRANK'])['SCORE'].min().reset_index())
TEMP3_10GRPL.rename(columns = {'SCORE':'LOW'}, inplace = True)
TEMP3_10GRP = pd.merge(TEMP3_10GRPH, TEMP3_10GRPL, left_on='FRANK', right_on='FRANK', how = 'left')
TEMP3_10GRP
我能用更短的方法实现这一点吗
提前感谢Groupby有一个专门用于此的方法
.agg()
或.aggregate()
df.groupby().agg(['max', 'min'])
正如@指出的,您可以使用
.agg
>>> import pandas as pd
>>> ...
>>> df
FRANK SCORE
0 1 0.748181
1 2 0.288977
2 3 0.233826
3 4 0.199272
4 5 0.175347
5 1 0.162130
6 2 0.152657
7 3 0.144827
8 4 0.136572
9 5 0.122733
10 1 0.288984
11 2 0.233826
12 3 0.199273
13 4 0.175347
14 5 0.162131
15 1 0.152657
16 2 0.144827
17 3 0.136572
18 4 0.122733
19 5 0.050276
>>> df.groupby('FRANK').agg(High=pd.NamedAgg(column="SCORE", aggfunc="max"), Low=pd.NamedAgg(column="SCORE", aggfunc="min"))
High Low
FRANK
1 0.748181 0.152657
2 0.288977 0.144827
3 0.233826 0.136572
4 0.199272 0.122733
5 0.175347 0.050276
>>>
检查
agg
:totscrd\u n\u r.groupby(['FRANK'])['SCORE'])。agg(['min','max'])
使用。