0.数据集说明:
金融数据,我们要做的是预测贷款用户是否会逾期。表格中的‘status’是结果标签:0表示未逾期,1表示逾期。
要求:数据切分方式 - 三七分,其中测试集30%,训练集70%,随机种子设置为2018
任务1:对数据进行探索和分析。时间:2天
1.数据预处理
# 导入相关包
import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
# 载入数据
data = pd.read_csv('data.csv',encoding='gbk')
data.head()
# 输出:
Unnamed: 0 custid trade_no bank_card_no low_volume_percent middle_volume_percent take_amount_in_later_12_month_highest trans_amount_increase_rate_lately trans_activity_month
0 5 2791858 20180507115231274000000023057383 卡号1 0.01 0.99 0 0.90 0.55 0.313 ... 2900.0 1688.0 1200.0 75.0 1.0 2.0 1200.0 1200.0 12.0 18.0
1 10 534047 20180507121002192000000023073000 卡号1 0.02 0.94 2000 1.28 1.00 0.458 ... 3500.0 1758.0 15100.0 80.0 5.0 6.0 22800.0 9360.0 4.0 2.0
2 12 2849787 20180507125159718000000023114911 卡号1 0.04 0.96 0 1.00 1.00 0.114 ... 1600.0 1250.0 4200.0 87.0 1.0 1.0 4200.0 4200.0 2.0 6.0
3 13 1809708 20180507121358683000000388283484 卡号1 0.00 0.96 2000 0.13 0.57 0.777 ... 3200.0 1541.0 16300.0 80.0 5.0 5.0 30000.0 12180.0 2.0 4.0
4 14 2499829 20180507115448545000000388205844 卡号1 0.01 0.99
#数据集划分
X = data.drop(['status'],axis=1)
y = data['status']
x_train, x_test, y_train,y_test = train_test_split(x, y, test_size=0.3, ramdon_state=2018
data.info()
1.1 无关特征删除
通过查看数据发现,unnamed、custid、trade_no、id_name为无关特征 bank_card_no、source所有的记录保持一致,为冗余特征,需要进行删除:
data.drop(['Unnamed: 0','custid','trade_no','id_name','bank_card_no','source'],axis=1,inplace=True)
1.2 类型转换
# 将loans_latest_time、latest_query_time这个列转换为datetime类型
data.Date = pd.to_datetime(data.Date)
data['Date'].head()
# 输出
0 2018-04-19
1 2018-05-05
2 2018-05-01
3 2018-05-03
4 2018-01-07
Name: loans_latest_time, dtype: datetime64[ns]
1.3 删除有缺失值的行
data= data.dropna(how='any')
data.head()
1.4 数据可视化
# 查看逾期还款的对比人数
ax = sns.countplot(x="status", data=data)
总结
初步了解了数据的导入和基本的相关统计,还需加强练习。