data = pd.DataFrame({'id': {(0): 2, (1): 5, (2): 4, (3): 8, (4): 7, (5): 1,
    (6): 9, (7): 3, (8): 6}, 'price': {(0): 1050, (1): 1400, (2): 1750, (3):
    4000, (4): 630, (5): 1000, (6): 1400, (7): 2000, (8): 7000}, 'currency':
    {(0): 'EU', (1): 'EU', (2): 'EU', (3): 'EU', (4): 'GBP', (5): 'GBP', (6
    ): 'GBP', (7): 'USD', (8): 'USD'}})
select_number = pd.DataFrame({'number_to_select': {'USD': 1, 'GBP': 2, 'EU':
    2}})
Selecting top n elements from each group in pandas groupby