kumar
kumar

Reputation: 659

getting an entire row as an output where certain column has max value using pandas python

enter image description here

Am new to python-pandas. I need some help in getting the entire row as output, rather than one column. Example: df1.max() is giving me this output.

Charge_Per_Line 263566.10

but i need output as:

claim_number charge_per_line

3 263566.10

Thank you !!

Upvotes: 1

Views: 53

Answers (1)

jezrael
jezrael

Reputation: 862471

For one columns DataFrame need sort_values and select last row by iloc:

df = pd.DataFrame({'claim_number':[1,1,2,2,3,3], 
                   'Charge_Per_Line':[10,5,4,20,10,3]})
print (df)
   Charge_Per_Line  claim_number
0               10             1
1                5             1
2                4             2
3               20             2
4               10             3
5                3             3

df1 = df.groupby('claim_number').sum()
print (df1)
              Charge_Per_Line
claim_number                 
1                          15
2                          24
3                          13

res = df1.sort_values('Charge_Per_Line').iloc[[-1]]
#alternative solution
#res = df1.loc[[df1['Charge_Per_Line'].idxmax()], ['Charge_Per_Line']]
print (res)
              Charge_Per_Line
claim_number                 
2                          24

If want column from index:

df1 = df.groupby('claim_number', as_index=False).sum()
print (df1)
   claim_number  Charge_Per_Line
0             1               15
1             2               24
2             3               13

res = df1.sort_values('Charge_Per_Line').iloc[[-1]]
#alternative
#res = df1.loc[[df1['Charge_Per_Line'].idxmax()]]
print (res)
   claim_number  Charge_Per_Line
1             2               24

Upvotes: 2

Related Questions