最重要的事情开始都会讲:建模是始终服务于业务的,没有业务的评分卡就没有灵魂

广义数据预处理包括:数据清洗,数据集成(用户基础数据,外部第三方数据,埋点数据),数据变换(WOE)

类型

  • 重复值

  • 字段问题

  • 空格

  • 大小写不一致

  • 多余符号

  • 关键字

  • 替换

  • 缺失值

  • 完全随机缺失(是随机的,数据的缺失不依赖于任何不完全变量或完全变量:设备出问题,导致缺失值,仅仅本身问题)

  • 随机缺失(数据的缺失不是完全随机的,即该类数据的缺失依赖于其他完全变量。比如家里没有小孩,家里不愿意说小孩或者单身没有太太,即选项问题)

  • 完全非随机缺失(数据的缺失依赖于不完全变量自身:富裕家庭不愿意提供,或者用户的确没有该数据,比如多头借贷)

  • 处理方式
    补缺(均值,最大值,最小值,拉格朗日差值)
    作为一种状态(针对完全非随机缺失)
    删除记录或者变量*

  • 异常值

  • 删除含有异常值的记录

  • 将异常值视为缺失值,交给缺失值处理方法来处理

  • 用平均值来修正

  • 不处理

https://blog.csdn.net/jyxmust/article/details/80659324
4 时间格式
5 中文数据

若干函数用法

1 重复值
Duplicated函数用来查找并显示数据表中的重复值
duplicated()
drop_duplicates()
2 空值
loandata.isnull()
loandata.notnull()
isnull函数和value_counts函数
loandata.fillna(0)
loandata.dropna()
loandata[‘loan_amnt’]=loandata[‘loan_amnt’].fillna(loandata[‘total_pymnt’]-loandata[‘total_rec_int’]).astype(np.int64)
3 空格
查看数据中的空格
loandata[‘loan_status’].value_counts()
去除数据中的空格
loandata[‘term’]=loandata[‘term’].map(str.strip)
loandata[‘term’]=loandata[‘term’].map(str.lstrip)
loandata[‘term’]=loandata[‘term’].map(str.rstrip)

4 大小写转换(为全部转换为大写,全部转换为小写,转换为首字母大写)
loandata[‘term’]=loandata[‘term’].map(str.upper)
loandata[‘term’]=loandata[‘term’].map(str.lower)
loandata[‘term’]=loandata[‘term’].map(str.title)

5 关键字段内容检查
loandata[‘emp_length’].apply(lambda x: x.isalpha())
loandata[‘emp_length’].apply(lambda x: x. isalnum ())
loandata[‘emp_length’].apply(lambda x: x. isdigit ())

6 数据中的异常和极端值异常值和极端值的方法是对数据进行描述性统计
loandata.describe().astype(np.int64).T
loandata.replace([100000,36],loandata[‘loan_amnt’].mean())

7 更改数据格式
loandata[‘loan_amnt’]=loandata[‘loan_amnt’].astype(np.int64)
loandata[‘issue_d’]=pd.to_datetime(loandata[‘issue_d’])
loandata.dtypes 函数查看字段数据格式

8 数据分组
bins = [0, 5, 10, 15, 20]
group_names = [‘A’, ‘B’, ‘C’, ‘D’]
loandata[‘categories’] = pd.cut(loandata[‘open_acc’], bins, labels=group_names)

9 数据分列
grade_split = pd.DataFrame((x.split(’-’) for x in loandata.grade),index=loandata.index,columns=[‘grade’,‘sub_grade’])
关联 loandata=pd.merge(loandata,grade_split,right_index=True, left_index=True)

10 查看数据
data_cr.head()
data_cr.shape #查看数据集的大小
data_cr.info() # 查看数据的基本信息
data_cr.describe().T
msno.matrix(data_cr) # 查看缺失值情况 import missingno as msno

11 空值百分比计算
a[var1] == -1).sum()/float(len(a)

12 分组的平均值
grouped1 = df[‘成交量’].groupby(df[‘位置’]).mean()

13 多次分组后的平均值
grouped2 = df[‘成交量’].groupby([df[‘位置’], df[‘卖家’]]).mean()

14 分组后的所有指标(如果可以计算平均值)的平均值
grouped3 = df.groupby([df[‘位置’], df[‘卖家’]]).mean()

15 DataFrame数据分割和合并
df[‘销售额’] = df[‘价格’] * df[‘成交量’] --两列成绩

16 ix,loc,iloc,这里是直接用[]运算做分割
df1 = df[30:40][[‘位置’, ‘卖家’]] --选取 第30-第39行 两列数据

17 merge concat
df3 = pd.merge(df1, df2) --不指定列名,默认选择列名相同
df4 = pd.merge(df1, df2, on=‘卖家’) --选择一个列表
df5 = pd.merge(df1, df2, how=‘outer’) --外联接
df6 = pd.merge(df1, df2, how=‘left’) --left
左index 右index
df_a = df[:10][[‘位置’, ‘卖家’]]
df_b = df[3:13][[‘价格’, ‘成交量’]]
df_c_1 = pd.merge(df_a, df_b, left_index=True, right_index=True)
df_c_2 = df_a.join(df_b) --左联接
df_c_3 = df_b.join(df_a) --右联接

df8 = df[2:5][[‘价格’]] # 注意这里只取一个列也要用[[]]
df9 = df[3:8][[‘销售额’, ‘宝贝’]]
df10 = df[6:11][[‘卖家’, ‘位置’]]

df11 = pd.concat([df10, df9, df8], sort=False) --union all

df12 = pd.concat([df10, df9, df8], axis=1) --列拼接 join

最重要的事情开始都会讲:建模是始终服务于业务的,没有业务的评分卡就没有灵魂

PART 2.2 风控建模前数据预处理清洗相关推荐

  1. ML之CatBoost:金融风控之通过数据预处理(中位数填充/校验同分布/文本型日期拆解/平均数编码-标签编码)利用CatBoost算法+模型可解释性(Shap/LIME)预测用户的车险是否为欺诈行为

    ML之CatBoost:金融风控之通过数据预处理(中位数填充/校验同分布/文本型日期拆解/平均数编码-标签编码)利用CatBoost算法+模型可解释性(Shap/LIME)预测用户的车险是否为欺诈行为 ...

  2. pythoncsv格式清洗与转换_数据预处理-清洗转换

    当数据质量校验完成后,针对有问题的数据要进行的是数据清洗和转换,另外还包括对正常数据的转换.数据清洗的主要作用包括:纠正错误.删除重复项.统一规格.修正逻辑.转换构造和数据压缩. 1. 纠正错误 错误 ...

  3. 数学建模2 数据预处理

    注意 题目给出的数据不能直接使用,要对数据进行异常处理 缺失值 1.缺失值太多就要把该项指标删除(40%相当大) 2.处理:对精度不高 定量数据,使用均值 定性数据,使用众数 3.对数据精度有要求 但 ...

  4. 数据科学猫:数据预处理 之 数据分箱(Binning)

    进击的橘子猫正式改名上线啦! 我的CSDN主页:https://blog.csdn.net/Orange_Spotty_Cat 也欢迎大家搜索微信公众号"进击的橘子猫",我也会定期 ...

  5. spss数据预处理步骤_数学建模准备必备的十个数据分析软件(数学建模从入门到精通)...

    前几天咋们聊了很多关于数学建模的干货,比如怎么样去前期准备学习数学建模,又比如数学建模需要哪些疾病软件?再比如数学建模论文摘要写作技巧.昨天那篇更是直接把数学建模常用的思维导图.流程图软件全部统统介绍 ...

  6. (二)数据预处理 2019年研究生数学建模D题《汽车行驶工况构建》

    在准备阶段,我们取得了突破性的进展,全面掌握了这个题目的来源和做法,下面开始做第一问. 解题思路 明确技术路线 开始做题目之前,在前面的基础工作开展后,就可以明确汽车行驶工况构建的基本研究技术路线了: ...

  7. 风控建模系列(六):催收评分卡卡跟贷前申请卡关于目标变量的定义

    关注公众号" 番茄风控大数据",获取更多数据分析与风控大数据的实用干货.   在评分卡的所有的开发流程里,我一直在强调最重要的就是关于Y变量的定义了.目标的定义是重中之重.定义一旦 ...

  8. 风控建模十二:数据淘金——如何从APP数据中挖掘出有效变量

    风控建模十二:数据淘金--如何从APP数据中挖掘出有效变量 1.常识知识 2.个例分析 3.分布排查 智能手机的诞生改变了人类的生活方式,智能手机所承载的功能日臻完善.强大,人们在衣.食.住.行.工作 ...

  9. 《Python金融大数据风控建模实战》 第6章 变量分箱方法

    <Python金融大数据风控建模实战> 第6章 变量分箱方法 本章引言 Python代码实现及注释 本章引言 变量分箱是一种特征工程方法,意在增强变量的可解释性与预测能力.变量分箱方法主要 ...

最新文章

  1. (转) ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(二)
  2. ceph部署出现错误及解决
  3. OpenCASCADE:Foundation Classes简介
  4. 从NBear到ADO.NET Entity Framework让我迷惑了
  5. java实现多线程抢单_JAVA实现多线程的四种方式
  6. Struts2之ajax初析
  7. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  8. 银行科技岗位 笔试 专业方向重点 + 面试一般问题
  9. Android 脚本设计之 SL4A
  10. 某网吧网络布线规划设计
  11. python之面向对象基础一
  12. Android快速开关机
  13. 计算机安全模式win7,Win7如何进入计算机安全模式?
  14. 安装jupyter notebook中关于markupsafe的问题
  15. 搭建以太坊私有链(PoA)--CentOS7.6 on 阿里云ECS、macOS Catalina on Mac、Ubuntu20.04 on Raspberry Pi 4B
  16. 每日一练1.直接排序法
  17. 1925: [Sdoi2010]地精部落
  18. 分数一定是有理数吗?
  19. gRPC android 监听server报错ProviderNotFoundException: No functional server found. Try adding a dependen
  20. openbilibili源码

热门文章

  1. C#数据库插入多条数据,抛出异常:另一个 SqlParameterCollection 中已包含 SqlParameter
  2. 2021.5.22 Python爬虫实战:效率办公,从下载文献开始...
  3. 聊聊四方支付通道那些事
  4. ubuntu 14.04 安装nvidia GTX745 驱动及深度学习环境搭建心得
  5. 为什么 think-cell 图表中的标签显示为白色矩形?
  6. 神经网络最本质的理论基础是什么?
  7. 网络调试助手 TCPsever无法连接
  8. 扩展欧几里得算法求逆元c语言,关于扩展欧几里得算法和逆元
  9. 【数据可视化】免费开源BI工具 DataEase 之 Tab 组件前世今生
  10. matlab 2016b vs2010,在Matlab2010b中调用 Microsoft Visual C++ 2010