I have a dataframe as shown below.
user_id     Recommended_modules                     Remaining_modules
1           {A:[5,11], B:[4]}                       {A:2, B:1}
2           {A:[8,4,2], B:[5], C:[6,8]}             {A:7, B:1, C:2}
3           {A:[2,3,9], B:[8]}                      {A:5, B:1}
4           {A:[8,4,2], B:[5,1,2], C:[6]}           {A:3, B:4, C:1} 
Brief about the dataframe:
In the column Recommended_modules A, B and C are courses and the numbers inside the list are modules.
Key(Remaining_modules) = Course name
value(Remaining_modules) = Number of modules remaining in that course
From the above I would like to reorder the recommended_modules column based on the values in the Remaining_modules as shown below.
Expected Output:
user_id     Ordered_Recommended_modules             Ordered_Remaining_modules
1           {B:[4], A:[5,11]}                       {B:1, A:2}
2           {B:[5], C:[6,8], A:[8,4,2]}             {B:1, C:2, A:7}
3           {B:[8], A:[2,3,9]}                      {B:1, A:5}
4           {C:[6], A:[8,4,2], B:[5,1,2]}           {C:1, A:3, B:4} 
Explanation:
For user_id = 2, Remaining_modules = {A:7, B:1, C:2}, sort like this {B:1, C:2, A:7}
similarly arrange Recommended_modules also in the same order as shown below {B:[5], C:[6,8], A:[8,4,2]}.
 
    