使用“正则”实现不规则数据的中英文提取

网友投稿 487 2022-11-11

使用“正则”实现不规则数据的中英文提取

使用“正则”实现不规则数据的中英文提取

1、对于本文的说明

这篇文章,是帮一个群友回答的问题。他的需求是:对于中英文混合的行,只需要中文。对于全英文的行,返回整个英文行。对于全中文的行,返回整个中文行。

2、解答如下

import pandas as pdimport redf = pd.read_excel(r"G:\6Tipdm\test.xlsx")display(df)def func(x): if re.findall("[\u4E00-\u9FD5]+",x) == []: z = re.findall("[^\u4E00-\u9FD5,]+",x) z = "".join(z).strip() return z else: z = re.findall("[\u4E00-\u9FD5, ]+",x) z = "".join(z).strip() return z df["aa"] = df["产品"].apply(func)

结果如下:

3、上述问题的扩展(中英文分开提取)

import pandas as pdimport redf = pd.read_excel(r"G:\6Tipdm\test.xlsx")display(df)def func(x): if re.findall("[\u4E00-\u9FD5]+",x) != []: z = re.findall("[^\u4E00-\u9FD5,]+",x) z = "".join(z).strip() return z elif re.findall("[\u4E00-\u9FD5]+",x) == []: z = re.findall("[^\u4E00-\u9FD5,]+",x) z = "".join(z).strip() return z else: return ""def func2(x): if re.findall("[\u4E00-\u9FD5]+",x) != []: z = re.findall("[\u4E00-\u9FD5, ]+",x) z = "".join(z).strip() return z else: return ""df["aa"] = df["产品"].apply(func)df["bb"] = df["产品"].apply(func2)

结果如下:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:matplotlib绘图技巧详解(三)
下一篇:满眼皆是你——旋转星空(Python代码)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~