Given the following dataframe:
df = pd.DataFrame({"values": ["a", "a", "a", "b", "b", "a", "a", "c"]})
How could I generate the given output:
values out
0 a 0
1 a 1
2 a 2
3 b 0
4 b 1
5 a 0
6 a 1
7 c 0
I can (if it allows easier options) ensure uniqueness over groups, hence having input values like:
df = pd.DataFrame({"values": ["a0", "a0", "a0", "b0", "b0", "a1", "a1", "c0"]})