Aleksander
Aleksander

Reputation: 67

Rearrange dataframe values

Let's say I have the following dataframe:

     ID              stop        x           y           z
0    202             9           20          27          4 
1    202             2           23          24          13
2    1756            5           5           41          73
3    1756            3           7           42          72 
4    1756            4           3           50          73    
5    2153            14          121         12          6    
6    2153            3           122.5       2           6   
7    3276            1           54          33          -12 
8    5609            9           -2          44          -32
9    5609            2           8           44          -32
10   5609            5           102         -23         16

I would like to change the ID values in order to have the smallest being 1, the second smallest being 2 etc.. So for my example, I would get this:

     ID              stop        x           y           z
0    1               9           20          27          4 
1    1               2           23          24          13
2    2               5           5           41          73
3    2               3           7           42          72 
4    2               4           3           50          73    
5    3               14          121         12          6    
6    3               3           122.5       2           6   
7    4               1           54          33          -12 
8    5               9           -2          44          -32
9    5               2           8           44          -32
10   5               5           102         -23         16

Any idea please?

Thanks in advance!

Upvotes: 0

Views: 50

Answers (1)

ali_enes_isbilen
ali_enes_isbilen

Reputation: 171

You can use pd.Series.rank with method='dense'

df['ID'] = df['ID'].rank(method='dense').astype(int)

Upvotes: 1

Related Questions