Python数据清洗分列函数,解决多字段数据分列的串行问题

目标:对多字段实现分列,有效解决串行问题

提取数据,分列“岗位属性”字段:

我们爬虫或清洗数据时经常会遇到多字段在同一列的情况,这里以字段“岗位属性”为例:

在这里插入图片描述
可以将多字段“岗位属性”分列为’工作地区’、‘工作经验要求’,‘学历要求’,‘招募人数’,‘发布时间’。如果数据非常整齐,可以使用split函数按照“|”进行分列,同Excel分列,比如’工作地区’字段全在第一个位置,因此成功分列。

split=[]
for i in range(len(Big_Data_Position)):
    split.append(Big_Data_Position['岗位属性'][i].split('\xa0\xa0|\xa0\xa0'))#split分列后是一个列表
pd.DataFrame(split)

数据直接按照‘|’分列会产生串行
由于部分数据字段在该行的缺失,导致行数据不整齐,数据直接按照‘|’分列会产生串行现象,比如第二例的本科、3-4年经验数据会在同一列,会产生串行现象。

串行的解决方法之一是根据这列数据的规律,使用循环判断的方法。如果这一列缺失该列数据,就利用空值进行填充。
函数体:

def clear(char_list,missing_data_filling_value):
    people_list=[]
    for i in Big_Data_Position['岗位属性']:#i为一个多字段字符串
        for j in i.split('\xa0\xa0|\xa0\xa0'):#这里\xa0\xa0|\xa0\xa0相当于|,是split分列的字符,j是一个列表
            for k in j:#k是列表里的一个字符
                if k in char_list:#char_list是根据数据规律的‘字’列表
                    break
            if k in char_list:#传入break掉的k
                i=j#用有效数据替换列表
        if type(i)==list:#如果没有替换就为空
            i=missing_data_filling_value#为空的话等于参数2,根据需要可以填充None、不确定,空字符串''等。
        people_list.append(i)
    return people_list

这里需要找到对应字段的规律,这里"招募人数"字段的规律是都含有“招”,因此,不论它在哪一列,在分列后的哪个位置,都可以进行准确的分列。

Big_Data_Position['招募人数']=clear(['招'])
Big_Data_Position['发布时间']=clear(['布'])
Big_Data_Position['学历要求']=clear(['本','专','士','中'])

清洗后的数据,成功分列:在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值