不规范数据 夹杂特殊字符 数据处理万精油(24.6.15更新)

本方法适用于数据不规范 ,如:一个特征中文夹杂数值夹符号

于是写了个方法,

先分辨离散和连续性特征,分类超过16种为离散型

然后将其中的字母文字符号替换

快速的将特征的数值规范化

1.找出离散和连续型特征

nubfeatures = [i for i in test_x.columns if i not in text]
for i in nubfeatures:
    if data[i].unique().shape[0]>16:
        con.append(i)
    else:
        cat.append(i)
len(con),len(cat)

 2.处理数据

import string
import re 
# 定义包含所有标点符号的字符串
punctuation = string.punctuation + ",。!?;:‘’“”()《》【】"
pattern = r'[\\,><.,。]+'+punctuation 

repat = r'[^a-zA-Z\u4e00-\u9fa5]+'

def clearnN(data):
    for i in con+cat:
        #删除值中的符号
        data[i] = data[i].astype(str)
        data[i] = data[i].apply(lambda x: re.sub(pattern, "", str(x)))
        data[i] = data[i].apply(pd.to_numeric, errors='coerce').fillna(-1)
        if i in con:
            continue
        else:
            #离散型特征编码
            data[i] = data[i].astype('category')
            data[i] = data[i].cat.codes
        #转为float类型
        data[i] = data[i].astype(float)
    data.describe()
clearnN(test_x)
clearnN(train_x)

3列名符号清除

机器学习等很多要求表格名称不能有符号

代码如下

data.columns = data.columns.str.replace(r'[^a-zA-Z0-9\u4e00-\u9fa5]+', '', regex=True)

非常简单 省时省力

祝大家实验运行顺利

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值