The pandas factorize function assigns each unique value in a series to a sequential, 0-based index, and calculates which index each series entry belongs to.
factorize
df = pd.DataFrame({'x': [1, 1, 2, 2, 1, 1], 'y':[1, 2, 2, 2, 2, 1]}) tuples = df[['x', 'y']].apply(tuple, axis=1) df['newID'] = pd.factorize( tuples )[0]