目前正在处理一个包含大量联系人数据的数据集,电子邮件是其中一个变量。
"电子邮件"列中的一个单元格可以有多封电子邮件(1到n(,它们都用逗号和空格分隔。
对于只有两封电子邮件的联系人来说,这个过程将非常简单。可以拆分字符串,并为第二封电子邮件创建一个新列,如下所示
email_df[['Emails', 'SecondaryEmail']] = email_df['Emails'].str.split(', ', expand=True)
然而,这不会适用于超过2封电子邮件。因此,我想知道,当电子邮件数量从1到n(在这种情况下,n限制在10左右,但并不总是这样(时,将电子邮件拆分为每个只有一封电子邮件(每个都有不同的名称(的列,最有效的方法是什么?
使用Series.str.split
Series.str.rsplit
和DataFrame.pop
在处理后删除列Email
:
df = email_df.join(email_df.pop('Emails').str.split(', ', expand=True).add_prefix('Email'))