Alternative solution:
In [222]: df.sort_values(['Maker', 'No Sold(,000s)'], ascending=[1,0]) \ .groupby('Maker', as_index=False).head(2) Out[222]: Maker Model No Sold(,000s) 33 Audi A3 47 34 Audi A4 30 39 BMW 3 Series 53 37 BMW 1 Series 36 28 Citroen C4 46 26 Citroen C1 40 3 Ford Fiesta 68 4 Ford Mondeo 55 16 Honda HRV 33 15 Honda Civic 32 12 Nissan Qashqai 62 11 Nissan Juke 57 21 Toyota Auris 45 20 Toyota Aygo 44
PS, please remember: @piRSquared solution is more idiomatic and should be faster
source share