解决问题描述:如某一字段中有n个用户,而我们要用数字1到n(要从0开始直接减1即可)表示这n个用户,如果原来的这个用户字段以字符表示或者用户数字编号不连续,则需要重新编码,效果如下:
1. df.groupby().ngroup() 方法(编码从0开始),以下方法结果一致,不再贴结果图
import pandas as pd
df=pd.read_excel(path,sheet_name=0)
users_id = df.groupby('用户').ngroup()
df['编号'] = users_id+1
df
2. df.rank()方法(编码从1开始)
import pandas as pd
df=pd.read_excel(path,sheet_name=0)
users_id = df['用户'].rank(method='dense')
df['编号'] = users_id
df
3. sklearn.preprocessing.LabelEncoder() 方法(编码从0开始)
from sklearn.preprocessing import LabelEncoder
scale = LabelEncoder()
users_id = scale.fit_transform(df['用户'])
df['编号'] = users_id+1
df