首页 > 解决方案 > 基于python分配用户ID的有效方法

问题描述

我正在尝试根据电子邮件分配用户 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 记录,我还没有看到它完成。有没有办法可以更有效地做到这一点?

标签: pythonpandasnumpy

解决方案


国际大学联合会,Series.factorize

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

推荐阅读