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

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

1、对于本文的说明

image.png

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

 


2、解答如下

import pandas as pd
import re
df = 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)
df


结果如下:

image.png


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

import pandas as pd
import re
df = 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)
df


结果如下:

image.png

相关文章
|
4月前
|
Python
【已解决】如何用正则提取小括号的内容
【已解决】如何用正则提取小括号的内容
108 0
|
7月前
|
数据采集 自然语言处理 JavaScript
正则表达式的神奇世界:表达、匹配和提取
正则表达式的神奇世界:表达、匹配和提取
113 0
|
7月前
|
自然语言处理
将向量提取器用于平行语料对齐的一个小示例
将向量提取器用于平行语料对齐的一个小示例
46 0
|
算法
基于MSER的车牌提取和字符分割仿真
基于MSER的车牌提取和字符分割仿真
115 0
|
算法 固态存储
分别使用SAD匹配,NCC匹配,SSD匹配三种算法提取双目图像的深度信息
分别使用SAD匹配,NCC匹配,SSD匹配三种算法提取双目图像的深度信息
182 0
分别使用SAD匹配,NCC匹配,SSD匹配三种算法提取双目图像的深度信息
|
文字识别
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
|
机器学习/深度学习 数据采集 存储
【英文文本分类实战】之四——词典提取与词向量提取
【英文文本分类实战】之四——词典提取与词向量提取
263 0
【英文文本分类实战】之四——词典提取与词向量提取
正则表达式匹配提取省市区
本文主要介绍通过正则表达式匹配提取省市区,有完整的代码示例和详细的注释。
685 0
正则表达式匹配提取省市区
|
机器学习/深度学习 存储 传感器
【汉字识别】基于模板匹配实现汉字精准识别附Matlab代码
【汉字识别】基于模板匹配实现汉字精准识别附Matlab代码