Python Pandas - random sampling base on column values

Viewed 32

I have a df 10000 rows with user_id, id_sport, sport_name, user_choice, number_place_sport.

A user has 10 choices but he can only do one sport.

I want to distribute these users based on their choice AND on the number of places available (column nb_place).

import pandas as pd        
df = pd.DataFrame({'User_id': ['User 1','User 1','User 1','User 1','User 1','User 1','User 1','User 1','User 1','User 1','User 2','User 2','User 2','User 2','User 2'],
'id_sport': [1618,1623,1619,1625,1624,1639,1686,1617,1685,1638,1646,1641,1626,1643,1676],
 'sport_name': ['Fitness','Fitness Body Sculpt ','Fitness Step ','Fitness Body Sculpt ','Fitness Body Sculpt ','Modern Jazz ',' Yoga Hatha /\xa0Yoga Vinyasa\xa0','Fitness',' Yoga Hatha /\xa0Yoga Vinyasa\xa0','Modern Jazz ','Musculation Cardio ','Musculation Cardio ','Football ','Musculation Cardio ','Urban Soccer'],
 'nb_place': [26, 35, 26, 35, 35, 26, 30, 26, 30, 35, 50, 50, 50, 50, 68]})
print (df)

Can you help me please.

here is an output I want:

df_resultat = pd.DataFrame({'id_sport': [1618,1618,1618,1618],           
     'sport_name': ['Fitness','Fitness','Fitness','Fitness'],
    'User_id': ['User 1','User 5','User 7','User 10']})
print (df_resultat)
0 Answers
Related