将数据框字符串(当字符串可以包含该单元格变量的 n 个值时)拆分为多列
Split dataframe string (when string can hold n values of that cell variable), into multiple columns
目前正在处理一个包含大量联系人数据的数据集,电子邮件是变量之一。
“电子邮件”列中的一个单元格可以有多个电子邮件(1 到 n),它们都用逗号和 space.
分隔
对于只有两封电子邮件的联系人,这个过程会非常简单。可以拆分字符串并为该辅助电子邮件创建一个新列,如下所示
email_df[['Emails', 'SecondaryEmail']] = email_df['Emails'].str.split(', ', expand=True)
但是,这不适用于超过 2 封电子邮件。因此,我想知道当电子邮件的数量可以从 1 到 n 时(在这种情况下,n 被限制在 10 左右,但情况并非总是如此),将电子邮件拆分为具有的列的最有效方法是什么每个人只有一封电子邮件(并且每个人的名字不同)?
在处理后使用 Series.str.split
Series.str.rsplit
with DataFrame.pop
删除列 Email
:
df = email_df.join(email_df.pop('Emails').str.split(', ', expand=True).add_prefix('Email'))
目前正在处理一个包含大量联系人数据的数据集,电子邮件是变量之一。
“电子邮件”列中的一个单元格可以有多个电子邮件(1 到 n),它们都用逗号和 space.
分隔对于只有两封电子邮件的联系人,这个过程会非常简单。可以拆分字符串并为该辅助电子邮件创建一个新列,如下所示
email_df[['Emails', 'SecondaryEmail']] = email_df['Emails'].str.split(', ', expand=True)
但是,这不适用于超过 2 封电子邮件。因此,我想知道当电子邮件的数量可以从 1 到 n 时(在这种情况下,n 被限制在 10 左右,但情况并非总是如此),将电子邮件拆分为具有的列的最有效方法是什么每个人只有一封电子邮件(并且每个人的名字不同)?
在处理后使用 Series.str.split
Series.str.rsplit
with DataFrame.pop
删除列 Email
:
df = email_df.join(email_df.pop('Emails').str.split(', ', expand=True).add_prefix('Email'))