Python利用正则表达条件性创建dataframe中新的features和column列

目标

根据职位名称创建新的列,命名为教师(是/否);类别(幼儿/小学/初中/高中/其他)。
Python利用正则表达条件性创建dataframe中新的features和column列_第1张图片

二分式匹配

  • 利用正则表达。如果职位包含英文teacher,Teacher,教师和老师,则为新建列教师添加元素(是)否则为(否)

代码如下:

# Create column 教师

teacher_list = 'teacher|Teacher|教师|老师'
regexp_value = re.compile(r'{}'.format(teacher_list))
job["教师"] = ["是" if regexp_value.search(ele) else "否" for ele in job["职位"]]

多项式分配

  • 同样利用正则表达。如果职位包含
    1. 幼,幼儿则匹配(幼儿)
    2. 小学匹配(小学)
    3. 初中匹配(初中)
    4. 高中匹配(高中)
    5. 实习生匹配(实习)
    6. 否则为(其他)

代码如下:

# Create column 类别

job["类别"] = ""

list1 = '幼|幼儿'
list2 = '初中'
list3 = '高中'
list4 = '小学'
list5 = '实习生'

regexp_list1 = re.compile(r'{}'.format(list1))
regexp_list2 = re.compile(r'{}'.format(list2))
regexp_list3 = re.compile(r'{}'.format(list3))
regexp_list4 = re.compile(r'{}'.format(list4))
regexp_list5 = re.compile(r'{}'.format(list5))

for i in range(len(job["职位"])):
    
    if regexp_list1.search(job["职位"][i]):
        job["类别"][i] = "幼儿"
    elif regexp_list2.search(job["职位"][i]):
        job["类别"][i] = "初中"
    elif regexp_list3.search(job["职位"][i]):
        job["类别"][i] = "高中"
    elif regexp_list4.search(job["职位"][i]):
        job["类别"][i] = "小学"
    elif regexp_list5.search(job["职位"][i]):
        job["类别"][i] = "实习"
    else:
        job["类别"][i] = "其他"

你可能感兴趣的:(python,正则表达,regular,expression,pandas,dataframe,Data,Frame)