Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
282 views
in Technique[技术] by (71.8m points)

python - Multiple aggregation in group by in Pandas Dataframe

SQL : Select Max(A) , Min (B) , C from Table group by C 

I want to do the same operation in pandas on a dataframe. The closer I got was till :

DF2= DF1.groupby(by=['C']).max() 

where I land up getting max of both the columns , how do i do more than one operation while grouping by.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use function agg:

DF2 = DF1.groupby('C').agg({'A': max, 'B': min})

Sample:

print DF1
   A   B  C  D
0  1   5  a  a
1  7   9  a  b
2  2  10  c  d
3  3   2  c  c

DF2 = DF1.groupby('C').agg({'A': max, 'B': min})

print DF2
   A  B
C      
a  7  5
c  3  2

GroupBy-fu: improvements in grouping and aggregating data in pandas - nice explanations.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...