'first dataframe has loan rates aganist multiple id, some of them are repeating, i want to pull out unquie id and their corresponding lowest rate

df=

ID  TYPE    Rate    CCY Size
0   12345   IN  0.25    USD 10,00,000.00
1   67890   IN  0.35    USD 10,00,000.00
2   23456   OUT 0.10    USD 10,00,000.00
3   97673   OUT -1.00   USD 10,00,000.00
4   87563   IN  -0.50   USD 10,00,000.00
5   364758  IN  0.25    USD 10,00,000.00
6   474759  OUT 0.35    USD 8,00,000.00
7   38484595    IN  0.10    USD 8,00,000.00
8   12345   IN  -1.00   USD 8,00,000.00
9   67890   OUT -0.50   USD 8,00,000.00
10  23456   IN  0.25    USD 8,00,000.00
11  97673   IN  0.35    USD 8,00,000.00
12  87563   OUT 0.10    USD 5,00,000.00
13  364758  OUT -1.00   USD 5,00,000.00
14  474759  OUT -0.50   USD 5,00,000.00
15  38484595    OUT 0.25    USD 5,00,000.00
16  12345   IN  0.35    USD 5,00,000.00
17  67890   IN  0.10    USD 5,00,000.00
18  23456   OUT -1.00   USD 5,00,000.00
19  97673   OUT -0.50   USD 5,00,000.00
20  87563   IN  0.25    USD 5,00,000.00
21  364758  IN  0.35    USD 5,00,000.00
22  474759  OUT 0.10    USD 5,00,000.00
23  38484595    IN  -1.00   USD 5,00,000.00
24  12345   IN  -0.50   USD 5,00,000.00
25  67890   OUT 0.25    USD 5,00,000.00
26  23456   IN  0.35    USD 5,00,000.00
27  97673   IN  0.10    USD 5,00,000.00
28  87563   OUT -1.00   USD 5,00,000.00
29  364758  OUT -0.50   USD 5,00,000.00
30  474759  OUT 0.25    USD 5,00,000.00
31  38484595    OUT 0.35    USD 5,00,000.00
32  12345   IN  0.10    USD 5,00,000.00
33  67890   IN  -1.00   USD 5,00,000.00
34  23456   OUT -0.50   USD 5,00,000.00
35  97673   OUT 0.25    USD 5,00,000.00
36  87563   IN  0.35    USD 5,00,000.00
37  364758  IN  0.10    USD 5,00,000.00
38  474759  OUT -1.00   USD 5,00,000.00
39  38484595    IN  -0.50   USD 5,00,000.00
40  12345   IN  0.25    USD 5,00,000.00
41  67890   OUT 0.35    USD 5,00,000.00
42  23456   IN  0.10    USD 5,00,000.00
43  97673   IN  -1.00   USD 5,00,000.00
44  87563   OUT -0.50   USD 5,00,000.00
45  364758  OUT 0.25    USD 5,00,000.00
46  474759  OUT 0.35    USD 5,00,000.00
47  38484595    OUT 0.10    USD 5,00,000.00

    ID  lowest rate highest rate
0   12345       
1   67890       
2   23456       
3   97673       
4   87563       
5   364758      
6   474759      
7   38484595    

I want to pull lowest and highest rates in df1 from df data for their corresponding Ids



Solution 1:[1]

You may try this:

import numpy as np
import pandas as pd
df = pd.read_csv('./data.csv')
df = df.groupby('ID').agg({'Rate' : [np.min, np.max]}).Rate

enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Kongvungsovanreach