这个分析可以看出客户年龄的分布和违约数量的关系,下面我们看结果
可以看出20-40岁的人违约的数量是直线上升的,这可能与他们年纪轻没有较多社会生活经验导致,而从40岁以后就成急速的下降趋势,可以看出他们的消费趋于理性。
首先我们导入库和文件,再设置一下等下要输出的图片里的一些文字设置
import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
matplotlib.rcParams['font.family']='Youyuan'
matplotlib.rcParams['font.size']='16'
lst1=[]
lst2=[]
data=pd.read_csv('C:\\Users\\Administrator\\Desktop\\Test\\shujufenxi\\yuchuli\\cs-training.csv')
然后我们先拿到要分析的类目,是age和SeriousDlqin2yrs,SeriousDlqin2yrs的意思是超过90天及更多的拖欠,如果有的话就是用1表示的,没有就是0表示(在实验文件里有)
data1=data[['age','SeriousDlqin2yrs']]
然后设置一下相应的年龄横轴,可以根据自己的喜好设置
lst1=[k for k in range(20,90,10)]
把data1中有超过90天的逾期数据放到data2中,做进一步分析
data2=data1[data1.SeriousDlqin2yrs==1]
shape[0]的意思是输出矩阵的行数,query是使用布尔搜索
可以看到下图的意思就是在data2里,把这些年龄段里逾期90天及以上的人的行数,叠加放入list2里
lst2.append((data2.query('30>age>=20').shape[0]))
lst2.append((data2.query('40>age>=30').shape[0]))
lst2.append((data2.query('50>age>=40').shape[0]))
lst2.append((data2.query('60>age>=50').shape[0]))
lst2.append((data2.query('70>age>=60').shape[0]))
lst2.append((data2.query('80>age>=70').shape[0]))
lst2.append((data2.query('90>age>=80').shape[0]))
最后进行绘图
plt.plot(lst1,lst2)
plt.xlabel('年龄')
plt.ylabel('违约客户数量')
plt.show()