金融风控探索性数据分析(EDA)
对数据简单查看
f = open(r"E:\data\金融风控\train.csv")
data_train = pd.read_csv(f)
f_test = open(r"E:\data\金融风控\testA.csv")
data_test = pd.read_csv(f_test)
data_train.head()#查看数据前五行
data_train.shape#查看数据的行列数
data_train.columns#查看数据列的索引
data_train.info()#查看数据每列的数据形式
data_train.isnull().sum()#查看缺失值
#查看缺失特征中缺失率大于50%的特征
columns_lost = []
columns = ['id', 'loanAmnt', 'term', 'interestRate', 'installment', 'grade',
'subGrade', 'employmentTitle', 'employmentLength', 'homeOwnership',
'annualIncome', 'verificationStatus', 'issueDate', 'isDefault',
'purpose', 'postCode', 'regionCode', 'dti', 'delinquency_2years',
'ficoRangeLow', 'ficoRangeHigh', 'openAcc', 'pubRec',
'pubRecBankruptcies', 'revolBal', 'revolUtil', 'totalAcc',
'initialListStatus', 'applicationType', 'earliesCreditLine', 'title',
'policyCode', 'n0', 'n1', 'n2', 'n3', 'n4', 'n5', 'n6', 'n7', 'n8',
'n9', 'n10', 'n11', 'n12', 'n13', 'n14']
for predictors in columns:
lost_rate = data_train[predictors].isnull().sum()/len(data_train)
print(lost_rate)
if lost_rate>0.5:
columns_lost.append(predictors)
have_null_fea_dict = (data_train.isnull().sum()/len(data_train)).to_dict()
fea_null_moreThanHalf = {}
for key,value in have_null_fea_dict.items():
if value > 0.5:
fea_null_moreThanHalf[key] = value