【发布时间】:2019-03-30 07:57:30
【问题描述】:
我有一个大型数据框,我想基本上为每个单独的人创建一个“唯一标识符”。相关栏是“电子邮件”栏,但由于格式设置困难:每个人可以有多个电子邮件。下面的示例框架:
Name of person ||| E-mail Address
'John Doe' ||| 'john.c.doe@choo.com'
'Bob Jones' ||| 'bobbyj@aboy.net;bob.jones@omic.com'
'Robert Jones' ||| 'robert@mail.com;bobbyj@aboy.net'
'Clara Bit' ||| 'clara@mail.com'
'John Doe' ||| 'j.diddy@ack.org;jjd@ila.hun'
我希望有一个字段可以根据电子邮件将人们区分开来:
Name of person ||| person ID
'John Doe' 1
'Bob Jones' 2
'Robert Jones' 2
'Clara Bit' 3
'John Doe' 4
我的大脑有点想知道如何使用 for 循环来做这件事,所以我希望有一种更简单的方法(另外,我在 df.index 上迭代了很多次,我被告知这是不好的形式并且无论如何都非常慢)。如果我用单个电子邮件元素创建多个电子邮件列,是否有可以做某事的功能?
谢谢!
编辑:对电子邮件第三行的错字表示歉意,已修复。
【问题讨论】:
-
在您当前的示例中,Bob 和 Robert Jones 不共享电子邮件,Robert 应该是
bobbyj@aboy.net吗? -
不清楚您是如何将
Bob Jones与Robert Jones分组的,它们的email列中的字段均不匹配。 -
后一个 aboy.net 电子邮件中缺少 'j' 大概是一个错字
-
我会使用一个将电子邮件地址映射到 UID 的字典。检查电子邮件是否在 dict 的键中既快速又简单。
标签: python python-3.x pandas dataframe