gpt4 book ai didi

python - Pandas :拆分值并跨列连接

转载 作者:行者123 更新时间:2023-12-04 15:06:58 26 4
gpt4 key购买 nike

我有一些用户数据的 csv,无论出于何种原因,它已将电子邮件名称和电子邮件域分成两个单独的列。一些用户也有多个电子邮件。如果情况允许,我想将它们合并到一个电子邮件或一个列表中。

例子:

emailname                          | emaildomain
john.smith; smithj | gmail.com, biz.net
sample.name | aol.com

我想将其更改为:

email
[john.smith@gmail.com, smithj@biz.net]
[sample.name@aol.com]

从那里,它将被推送到一个字典,我将不得不迭代单元格中的每个值并从中创建一个条目,我有一个粗略的想法如何只使用基本的 python,或者通过以下类似的逻辑。

我能够使用 df['email name'] = df['email name'].str.split(';') 将每个字段拆分为一个列表,这给了我一个列表对于字段中的每个值。但是,我对如何将它们加入一个字段感到困惑。

在纯 python 中,我会做类似的事情:

emaillist = []
for i in emailname: #where the assumption is there is a 1:1 relationship between each name and domain
e = '@'.join(emailname[i],emaildomain[i])
emaillist.append(e)

但在 pandas 中,我不确定如何在数据框的单元格内获取列表的索引。理想情况下,我也想跳过任何空白行,但如果只是创建一个“空”列表,如:[@] 那么没关系,我可以稍后修复它。

最佳答案

将嵌套列表理解与 * 一起用于解包列表:

L = [['@'.join(z) for z in zip(*[y.split(',') for y in x])] 
for x in zip(df['emailname'],df['emaildomain'])]
print (L)
[['john.smith@gmail.com', 'smithj@biz.net'], ['sample.name@aol.com']]

关于python - Pandas :拆分值并跨列连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65951438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com