⼤数据之Python数据分析实训信⽤卡客户风险评价之⼀、处理信⽤卡数据异常
值
⼀、处理信⽤卡数据异常值
2 实训环境
(1) 使⽤ 3.6 版本的 Python 。
(2) 使⽤ jupyter notebook 编辑器。
(3) os , pandas , N umPy 。
3 实训内容
为了推进信⽤卡业务良性发展,减少坏账风险,台湾各⼤银⾏都进⾏了信⽤卡客户风险识别相关⼯作,建⽴了相应的客户风险识别模型。某银⾏因旧的风险识别模型随时间推移,不再适应业务发展需求,需要重新进⾏风险识别模型构建。
4 实训步骤
(1) 读取信⽤卡数据。
(2) 丢弃逾期,呆账,强制停卡,退票记录,拒往记录为 1 ,瑕疵户为 2 的记录。
(3) 丢弃呆账,强制停卡,退票为 1 ,拒往记录为 2 的记录。
(4) 丢弃频率为 5 ,刷卡⾦额不等于 1 的数据。
4.1 读取数据
读取信⽤卡数据集中的数据信息,如 代码 4‑1 所⽰。
In[1]:
import pandas as pd
import numpy as np
import os
os.chdir('/course/Python 数据分析与应⽤ /data')
# 数据⽂件读取
data = pd.read_csv('./credit_card.csv',encoding='gb18030', engine ='python')
print(' 信⽤卡交易原始数据的形状为: ',data.shape)
python大数据就业前景Out[1]:
信⽤卡交易原始数据的形状为:(65535,28)
In[2]:
data.describe()# 数据描述
Out[2]:
申请书来源瑕疵户...⾎型星座
count 65535.65535.00000065535.000000
mean 3.912871 2.615839 6.626246
std 2. 1.283497 3.450280
min 1.000000 1.000000 1.000000
25% 2.000000 1.000000 4.000000
50% 4.000000 2.0000007.000000
75% 5.000000 4.00000010.000000
max8.000000 4.00000012.000000
[8 rows x 27 columns]
In[3]:
temp = data.describe()
temp.shape
Out[3]:
(8,27)
4.2 处理数据异常值
(1) 丢弃逾期,呆账,强制停卡,退票记录,拒往记录为 1 ,瑕疵户为 2 的记录 。
(2) 丢弃呆账,强制停卡,退票为 1 ,拒往记录为 2 的记录。
(3) 丢弃频率为 5 ,刷卡⾦额不等于 1 的数据。
如 代码 4‑2 所⽰。
In[4]:
# 丢弃逾期,呆账,强制停卡,退票,拒往记录为 1 ,瑕疵户为 2 的记录。
ind1 = data[' 逾期 ']==1
ind2 = data[' 呆账 ']==1
ind3 = data[' 强制停卡记录 ']==1
ind4 = data[' 退票 ']==1
ind5 = data[' 拒往记录 ']==1
ind6 = data[' 瑕疵户 ']==2
data2 = ind1&ind2&ind3&ind4&ind5&ind6
data3 = data.loc[data2,:]
data4 = data.loc[data2 ==False,:]
print(' 保留逾期,呆账,强制停卡,退票记录,拒往记录为1, \
瑕疵户为2的记录后,数据的形状为: ',data3.shape)
print(' 删除逾期,呆账,强制停卡,退票记录,拒往记录为1, \
瑕疵户为2的记录后,数据的形状为: ',data4.shape)
<_csv('../tmp/data3.csv')
<_csv('../tmp/data4.csv')
Out[4]:
保留逾期,呆账,强制停卡,退票记录,拒往记录为1,瑕疵户为2的记录后,数据的形状为:(2196,28)删除逾期,呆账,强制停卡,退票记录,拒往记录为1,瑕疵户为2的记录后,数据的形状为:(63339,28)
In[5]:
# 丢弃呆账,强制停卡,退票为 1 ,拒往记录为 2 的记录
ind7 = data4[' 拒往记录 ']==2
data5 = ind2&ind3&ind4&ind7
data6 = data4.loc[data5 ==False,:]
print(' 删除呆账,强制停卡,退票为1,拒往记录为2的记录后, \
数据的形状为: ',data6.shape)
<_csv('../tmp/data6.csv')
Out[5]:
删除呆账,强制停卡,退票为1,拒往记录为2的记录后,数据的形状为:(63081,28)
In[6]:
# 丢弃频率为 5 ,刷卡⾦额不等于 1 的数据
ind8 = data6[' 频率 ']==5
ind9 = data6[' ⽉刷卡额 ']!=1
data7 = ind8&ind9
data8 = data6.loc[data7 ==False,:]
print(' 删除频率为 5 ,刷卡⾦额不等于 1 的记录后,数据的形状为: ',data8.shape)
<_csv('../tmp/data8.csv')
Out[6]:
删除频率为5,刷卡⾦额不等于1的记录后,数据的形状为:(60578,28)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论