tmp = pd.DataFrame({'a':[1,1,2,2,3,1,2,3,1,3,1,2]}) tmp['sequential'] = tmp.groupby('a').cumcount() tmp.sort_values('a')