Noc*_*cas 1 python dataframe pandas
I have a data frame with a column like
Customer
0. ABC
1. ABC
2. DEF
3. GHI
4. JKL
5. JKL
Run Code Online (Sandbox Code Playgroud)
I need to add another column so that I have an id per customer like this:
Customer Id
0. ABC 1
1. ABC 1
2. DEF 2
3. GHI 3
4. JKL 4
5. JKL 4
Run Code Online (Sandbox Code Playgroud)
How can I do this?
Option 1: You can use groupby().ngroup():
df['Id'] = df.groupby('Customer').ngroup()+1
Run Code Online (Sandbox Code Playgroud)
Option 2: You can also use rank:
df['Id'] = df['Customer'].rank(method='dense')
Run Code Online (Sandbox Code Playgroud)
Output:
Customer Id
0.0 ABC 1
1.0 ABC 1
2.0 DEF 2
3.0 GHI 3
4.0 JKL 4
5.0 JKL 4
Run Code Online (Sandbox Code Playgroud)