有没有更高效的字符拆分列方法?提取邮箱@后至首个.的内容
高效提取邮箱中的公司名方法
你可以用pandas的str.extract配合正则表达式一步完成,这是最简洁高效的方式,不需要多步操作:
finaldf['company'] = finaldf['email'].str.extract(r'@([^.]+)\.', expand=False)
正则说明
@:匹配邮箱中的@符号([^.]+):捕获一组非点号的连续字符,这就是我们要的公司名部分\.:匹配第一个点号,作为结束标识
测试你给出的示例数据,结果会是:
0 company 1 company 2 company Name: company, dtype: object
如果想用split的方式,也可以链式调用str.split,不过效率稍逊于正则提取:
finaldf['company'] = finaldf['email'].str.split('@').str[1].str.split('.').str[0]
两种方法都是向量化操作,比循环处理快得多,其中正则提取的可读性和效率更优。
内容的提问来源于stack exchange,提问作者Daniel Rondon
相关产品推荐
相关产品推荐

