2.3 代码示例
2.3.1 导入数据分析及可视化过程需要的库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import warnings
warnings.filterwarnings('ignore')
2.3.2 读取文件
#读取数据时相对路径载入报错时,尝试使用os.getcwd()查看当前工作目录
data_train = pd.read_csv(os.getcwd()+'//零基础入门金融风控-贷款违约预测//data//train.csv')
data_test_a = pd.read_csv(os.getcwd()+'//零基础入门金融风控-贷款违约预测//data//testA.csv')
运行结果:
2.3.2.1读取文件的拓展知识
- TSV与CSV的区别:
- 从名称上即可知道,TSV是用制表符(Tab,'\t')作为字段值的分隔符;CSV是用半角逗号(',')作为字段值的分隔符;
- Python对TSV文件的支持: Python的csv模块准确的讲应该叫做dsv模块,因为它实际上是支持范式的分隔符分隔值文件(DSV,delimiter-separated values)的。 delimiter参数值默认为半角逗号,即默认将被处理文件视为CSV。当delimiter='\t'时,被处理文件就是TSV。
- 读取文件的部分(适用于文件特别大的场景)
- 通过nrows参数,来设置读取文件的前多少行,nrows是一个大于等于0的整数。
- 分块读取
data_train_sample = pd.read_csv(data_train_path,nrows=5)
print(data_train_sample)#设置chunksize参数,来控制每次迭代数据的大小
chunker = pd.read_csv(data_train_path,chunksize=5)
for item in chunker:print(type(item))print(len(item))break
运行结果:
2.3.3总体了解
2.3.3.1 查看数据集的样本个数和原始特征维度
data_train.shape
data_test.shape
data_train.columns
运行结果:
2.3.3.2 查看一下具体的列名,赛题理解部分已经给出具体的特征含义,这里方便阅读再给一下:
-
id 为贷款清单分配的唯一信用证标识
-
loanAmnt 贷款金额
-
term 贷款期限(year)
-
interestRate 贷款利率
-
installment 分期付款金额
-
grade 贷款等级
-
subGrade 贷款等级之子级
-
employmentTitle 就业职称
-
employmentLength 就业年限(年)
-
homeOwnership 借款人在登记时提供的房屋所有权状况
-
annualIncome 年收入
-
verificationStatus 验证状态
-
issueDate 贷款发放的月份
-
purpose 借款人在贷款申请时的贷款用途类别
-
postCode 借款人在贷款申请中提供的邮政编码的前3位数字
-
regionCode 地区编码
-
dti 债务收入比
-
delinquency_2years 借款人过去2年信用档案中逾期30天以上的违约事件数
-
ficoRangeLow 借款人在贷款发放时的fico所属的下限范围
-
ficoRangeHigh 借款人在贷款发放时的fico所属的上限范围
-
openAcc 借款人信用档案中未结信用额度的数量
-
pubRec 贬损公共记录的数量
-
pubRecBankruptcies 公开记录清除的数量
-
revolBal 信贷周转余额合计
-
revolUtil 循环额度利用率,或借款人使用的相对于所有可用循环信贷的信贷金额
-
totalAcc 借款人信用档案中当前的信用额度总数
-
initialListStatus 贷款的初始列表状态
-
applicationType 表明贷款是个人申请还是与两个共同借款人的联合申请
-
earliesCreditLine 借款人最早报告的信用额度开立的月份
-
title 借款人提供的贷款名称
-
policyCode 公开可用的策略代码=1新产品不公开可用的策略代码=2
-
n系列匿名特征 匿名特征n0-n14,为一些贷款人行为计数特征的处理
2.3.3.3 通过info()来熟悉数据类型
data_train.info()
运行结果:
2.3.3.4 总体粗略的查看数据集各个特征的一些基本统计量
data_train.describe()
运行结果:
id | loanAmnt | term | interestRate | installment | employmentTitle | homeOwnership | annualIncome | verificationStatus | isDefault | ... | n5 | n6 | n7 | n8 | n9 | n10 | n11 | n12 | n13 | n14 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | 800000.000000 | 800000.000000 | 800000.000000 | 800000.000000 | 800000.000000 | 799999.000000 | 800000.000000 | 8.000000e+05 | 800000.000000 | 800000.000000 | ... | 759730.000000 | 759730.000000 | 759730.000000 | 759729.000000 | 759730.000000 | 766761.000000 | 730248.000000 | 759730.000000 | 759730.000000 | 759730.000000 |
mean | 399999.500000 | 14416.818875 | 3.482745 | 13.238391 | 437.947723 | 72005.351714 | 0.614213 | 7.613391e+04 | 1.009683 | 0.199513 | ... | 8.107937 | 8.575994 | 8.282953 | 14.622488 | 5.592345 | 11.643896 | 0.000815 | 0.003384 | 0.089366 | 2.178606 |
std | 230940.252015 | 8716.086178 | 0.855832 | 4.765757 | 261.460393 | 106585.640204 | 0.675749 | 6.894751e+04 | 0.782716 | 0.399634 | ... | 4.799210 | 7.400536 | 4.561689 | 8.124610 | 3.216184 | 5.484104 | 0.030075 | 0.062041 | 0.509069 | 1.844377 |
min | 0.000000 | 500.000000 | 3.000000 | 5.310000 | 15.690000 | 0.000000 | 0.000000 | 0.000000e+00 | 0.000000 | 0.000000 | ... | 0.000000 | 0.000000 | 0.000000 | 1.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 |
25% | 199999.750000 | 8000.000000 | 3.000000 | 9.750000 | 248.450000 | 427.000000 | 0.000000 | 4.560000e+04 | 0.000000 | 0.000000 | ... | 5.000000 | 4.000000 | 5.000000 | 9.000000 | 3.000000 | 8.000000 | 0.000000 | 0.000000 | 0.000000 | 1.000000 |
50% | 399999.500000 | 12000.000000 | 3.000000 | 12.740000 | 375.135000 | 7755.000000 | 1.000000 | 6.500000e+04 | 1.000000 | 0.000000 | ... | 7.000000 | 7.000000 | 7.000000 | 13.000000 | 5.000000 | 11.000000 | 0.000000 | 0.000000 | 0.000000 | 2.000000 |
75% | 599999.250000 | 20000.000000 | 3.000000 | 15.990000 | 580.710000 | 117663.500000 | 1.000000 | 9.000000e+04 | 2.000000 | 0.000000 | ... | 11.000000 | 11.000000 | 10.000000 | 19.000000 | 7.000000 | 14.000000 | 0.000000 | 0.000000 | 0.000000 | 3.000000 |
max | 799999.000000 | 40000.000000 | 5.000000 | 30.990000 | 1715.420000 | 378351.000000 | 5.000000 | 1.099920e+07 | 2.000000 | 1.000000 | ... | 70.000000 | 132.000000 | 79.000000 | 128.000000 | 45.000000 | 82.000000 | 4.000000 | 4.000000 | 39.000000 | 30.000000 |
欲知后事如何,且听下回分解……………………