一、数据处理主要任务
二、数据集处理
1、查看数据集基本情况
调用 info() 函数来查看数据data的基本情况,包括数据维度,字段名称和类型以及有无缺失值,数据占用内存等。(以下为部分字段信息)
可见总的数据47447行,少于此数值的为有数据缺失。
2、查看数据基本统计信息
data_des = data.describe(include='all')
可以从基本信息中粗略的观察数据情况:
3、是否违约特征分析
使用pandas中的plot()函数绘制特征 ‘违约’ 分布状况。
这一步主要目的是看数据集label分布是否是平衡的,即是否未违约人数明显多于违约人数。
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8,6))
# 绘制柱状图,查看违约关系的取值分布情况
data['Default'].value_counts(dropna=False).plot(kind='bar',rot=40) #不去除nan值,x轴标签旋转40度
# 在柱形上方显示计数
counts = data['Default'].value_counts(dropna=False).values
for index, item in zip([0,1,2], counts):
plt.text(index, item, item, ha="center", va= "bottom", fontsize=12)
# 设置柱形名称
plt.xticks([0,1,2],['未违约','违约','NaN'])
# 设置x、y轴标签
plt.xlabel("是否违约")
plt.ylabel("客户数量")
# 设置标题以及字体大小
plt.title("违约与未违约数量分布图",size=13)
# 设置中文显示
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['font.family']=['sans-serif']
plt.show()
4、分析数据中某个离散型数据字段与标签值(是否违约)之间的关系(以CityId字段为例)
(1)不同城市级别下不同违约情况的数量分布柱状图
(2)不同城市级别下违约率柱状图
其中标签字段为'Default'
主要使用了 sns.countplot(),其中hue='Default'是按照标签进行分类
import seaborn as sns
import matplotlib.pyplot as plt
fig,