银行坏账数据分析

加载数据

import pandas as pd
import numpy as np

data = pd.read_csv('loan.csv',encoding='ansi')
print(data)

好坏用户,0代表信用好用户,1代表信用坏用户。

data = pd.read_csv('loan.csv',encoding='ansi')
print(data.isnull().sum())

对月收入数据进行填充

mode = data.loc[:,'月收入'].mode()[0]
data.loc[:,'月收入'].fillna(value=mode,inplace=True)
print(data.isnull().sum())

填充完成之后的结果如上图

使用相关系数来分析

res_corr = data.loc[:,['月收入','好坏客户']].corr()
print(res_corr)

结果如下: 

 等宽分组

ptp = data.loc[:,'月收入'].max() - data.loc[:,'月收入'].min()
step = np.ceil(ptp/5)
bins = np.arange(data.loc[:,'月收入'].min(),data.loc[:,'月收入'].max()+step,step)
data.loc[:,'月收入'] = pd.cut(data.loc[:,'月收入'],bins=bins,include_lowest=True)
print(data.loc[:,'月收入'])

等频分组

bins = data.loc[:,'月收入'].quantile(np.arange(0,1+1/5,1/5))
data.loc[:,'月收入'] = pd.cut(data.loc[:,'月收入'],bins=bins,include_lowest=True)
print(data.loc[:,'月收入'])

分组完成之后统计每组多少人如下:

res_counts = pd.value_counts(data.loc[:,'月收入'])
print(res_counts)

按照月收入进行分组,统计各个组内坏人的个数:

res_sum = data.groupby(by=data.loc[:,'月收入'])['好坏客户'].sum()
print(res_sum)

每组的坏账人数与组内人数的百分比

print("坏账率占比:\n",(res_sum/res_counts).apply(lambda x:format(x,".2%")))

得出结果:随着月收入的提高,坏账率会降低

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值