Reputation: 659
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
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