基于python的有效用户id分配方法

基于python的有效用户id分配方法,python,pandas,numpy,Python,Pandas,Numpy,我正在尝试根据电子邮件分配用户ID,我的数据如下所示: email, date, status user1@email.com, 28-05-2020, 1 user2@email.com, 28-05-2020, 5 user3@email.com, 29-05-2020, 2 user4@email.com, 30-05-2020, 1 单用户电子邮件可以在数据帧中多次出现,我当然希望每次都用单用户ID替换电子邮件。我目前的做法是: users = all_data['email'] un

我正在尝试根据电子邮件分配用户ID,我的数据如下所示:

email, date, status
user1@email.com, 28-05-2020, 1
user2@email.com, 28-05-2020, 5
user3@email.com, 29-05-2020, 2
user4@email.com, 30-05-2020, 1
单用户电子邮件可以在数据帧中多次出现,我当然希望每次都用单用户ID替换电子邮件。我目前的做法是:

users = all_data['email']
unique = all_data['email'].unique()
ids = [np.where(unique == user) for user in users]
它工作正常,但需要永远运行大量数据。对于50张唱片,它在微风中运行。对于500k记录,我还没有看到它完成。有什么方法可以更有效地完成这项工作吗?

IIUC

df['id'] = df['email'].factorize()[0]