使用定界符将数据框中的列中的各个字符串分开,并将子字符串添加到单独的列中

问题描述 投票:0回答:2

例如,我有数据框:

 df = pd.DataFrame({
            "EmailAdd": ["[email protected]", "[email protected]"],
            "Subject": ["Report submission", "Meeting update"]
        })

我想遍历“ EmailAdd”的每个元素,并使用@分开,然后再添加2列,第一个包含“ pamelasilvera”的“ EmailAdd_root”,第二个包含“ gmail.com”的“ EmailAdd_ext”,我该怎么做?

python pandas text-processing
2个回答
2
投票

我们用joinstr.split

df=df.join(df.EmailAdd.str.split('@',expand=True))
Out[138]: 
                  EmailAdd            Subject              0          1
0  [email protected]  Report submission  pamelasilvera  gmail.com
1   [email protected]     Meeting update   indiejesse.d  gmail.com

0
投票

我们也可以将str.extract与命名的正则表达式组一起使用:

df.join(df.EmailAdd.str.extract('^(?P<Email>[^@]+)@(?P<Domain>.+)'))

输出:

                  EmailAdd            Subject          Email     Domain
0  [email protected]  Report submission  pamelasilvera  gmail.com
1   [email protected]     Meeting update   indiejesse.d  gmail.com
© www.soinside.com 2019 - 2024. All rights reserved.