【工程实践】数据清洗

前言

        工作中遇到的数据清洗过程,仅作记录。

1.清洗代码

1-1.清除表情符号、html网址、email ids、urls

def clean_data(data):
    punct_tag = re.compile(r'[^\w\s]')
    data = punct_tag.sub(r'', data)
    html_tag = re.compile(r'<.*?>')
    data = html_tag.sub(r'', data)
    url_clean = re.compile(r"https://\S+|www\.\S+")
    data = url_clean.sub(r'', data)
    emoji_clean = re.compile("["
                             u"\U0001F600-\U0001F64F"  # emoticons
                             u"\U0001F300-\U0001F5FF"  # symbols & pictographs
                             u"\U0001F680-\U0001F6FF"  # transport & map symbols
                             u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                             u"\U00002702-\U000027B0"
                             u"\U000024C2-\U0001F251"
                             "]+", flags=re.UNICODE)
    data = emoji_clean.sub(r'', data)
    url_clean = re.compile(r"https://\S+|www\.\S+")
    data = url_clean.sub(r'', data)
    return data

1-2.清除所有格

def strip_possessives(text):
    text = text.replace("'s", '')
    text = text.replace('’s', '')
    text = text.replace("\'s", '')
    text = text.replace("\’s", '')
    return text

1-3.将数字替换成

def clean_numbers(x):
    x = re.sub("[0-9]{5,}", '#####', x)
    x = re.sub("[0-9]{4}", '####', x)
    x = re.sub("[0-9]{3}", '###', x)
    x = re.sub("[0-9]{2}", '##', x)
    return x

后记

        有个很著名的论断:一个数据科学家80%的时间花在了数据清洗,20%的时间花在算法模型上面。数据清洗很像一个筛沙子的过程,通过整合筛选,筛出金子般的数据洞察/模型预测。不然的话,建模分析就是garbage in, garbage out (垃圾进,垃圾出)

        经过实践,  即使通过简单的数据清洗,也能提升1-2%的模型指标。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值