数据简单预处理

本数据集为金融数据,目标任务为预测贷款用户是否会逾期

1、导入数据
import pandas as pd
import numpy as np

data=open("./data.csv")
data = pd.read_csv(data)
2、查看前五列的数据以及数据的基本信息
print(data.head())
print(data.info())

在这里插入图片描述
在这里插入图片描述

3、删除无关的特征

根据数据任务,我们将id,name,no等相关的特征删除掉

data1 = data.drop(['trade_no', 'bank_card_no', 'source', 'Unnamed: 0', 'id_name'], axis=1)
data1.info()

在这里插入图片描述

4、统计特征缺失值个数
print(data1.isnull().sum())

count=0
for i in range(85):
    if data1.isnull().sum()[i]>250:
        count=count+1
print(count)
print(max(data1.isnull().sum()))

在这里插入图片描述
我们统计了各个特征的数据缺失值个数,发现缺失值大于250的有44个,同时最大缺失值的特征为student_feature,缺失值达到了2998。因此我们先将student_feature特征剔除

5、剔除无效样本与特征
data1=data1.drop(['student_feature'], axis=1)
data1.dropna(thresh=70, inplace = True)

我们将一个样本中有15个特征缺失值的定为无效样本,并将其剔除

6、缺失值填充

通过之前的查看数据信息,发现数据的格式存在三种,我们将object类型数据取出分别处理不同类型之间的缺失值。
在这里插入图片描述

data_col=['loans_latest_time', 'latest_query_time', 'reg_preference_for_trad']
data2 = data1[data_col]
data3 = data1.drop(data_col, axis=1)

data3=data3.fillna(data3.mode())

reg_data=data2['reg_preference_for_trad']
data2.drop(['reg_preference_for_trad'], axis=1)

from sklearn import preprocessing
CityData = preprocessing.LabelBinarizer().fit_transform(reg_data) 
CityDataFrame = pd.DataFrame(CityData, columns=["一线城市","三线城市","二线城市","其它城市","境外"])

我们使用样本每列数据的众数来填充缺失值,也可以使用平均数等。这两种方法为处理缺失值的常用方法

7、合并数据

对上述处理后的数据进行合并

data3.reset_index(drop=True, inplace=True)
data2.reset_index(drop=True, inplace=True) 
CityDataFrame.reset_index(drop=True, inplace=True) 
dataSet = pd.concat([data2, CityDataFrame, data3], axis=1)
8、将数据集切分为训练集与测试集

对数据集切分为训练集与测试集切分的比例为7:3,随机因子为2018

train, test = train_test_split(dataSet, test_size=0.3, random_state=2018)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值