昨天用sas写了一个gbdt的算法,通篇写下了几百行,实在啰嗦,于是改投python怀抱。
用python进行建模,本篇文章主要介绍pandas数据处理。
因为我的数据集是sas格式,直接pandas读取sas数据集:
读入的数据集如下:
submit_time1在sas数据集中是yymmdd的时间格式,而导入python数据集中会转为天数,sas的起始时间戳是1960-01-01 00:00:00,而python的时间戳是1970-01-01 00:00:00,相差10年,所以直接在pandas里转换的话会多出10年。我的做法是在网上查找1960-01-01和1970-01-01之间相差的天数,然后再减去这个天数,再转为%Y-%m-%d的时间格式。代码如下:
所得如下:
因为这个数据集是我的建模数据集,所以已经计算出分箱和woe了,现在我想把这部分变量删除,woe是以包含“W_”,分箱变量是以包含“G”,以下代码是删除批量删除包含“W_” 和“G” 的变量,代码如下:
接下来我想统计下每个月的账户数,代码如下:
数据集如下:
接下来来看各个变量的缺失度,代码如下:
所得结果如下:
接下来把缺失度超过阈值的列删除,代码如下:
今天就介绍到这里,因为分箱内容较多,就不在这里介绍了,下一章将开始介绍最优分箱。
谢谢大家。
领取专属 10元无门槛券
私享最新 技术干货