金融数据1_apply(pd.series.nunique,axis=0)-程序员宅基地

技术标签: 数据挖掘  

自己分析的第一个数据挖掘项目

首先导入数据

  1. 导入相应的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

from sklearn.preprocessing import LabelEncoder
  1. 导入数据
data = pd.read_csv("C:/Users/97185/Desktop/test/data.csv")
data.head()
data.shape

在这里插入图片描述
(4754, 90)

  1. 查看目标变量及特征类型的查看
data['status'].value_counts()

0 3561
1 1193
Name: status, dtype: int64

data['status'].astype(int).plot.hist()

在这里插入图片描述

data.dtypes.value_counts()

float64 70
int64 13
object 7
dtype: int64

data.select_dtypes('object').apply(pd.Series.nunique, axis=0)

trade_no 4754
bank_card_no 1
reg_preference_for_trad 5
source 1
id_name 4309
latest_query_time 207
loans_latest_time 232
dtype: int64

  1. 删除无关变量
data = data.drop(['loans_latest_time', 'latest_query_time'], axis=1)
data = data.drop(['trade_no', 'bank_card_no', 'source'], axis=1)
data = data.drop(['custid'], axis=1)
data.shape
data.head()

在这里插入图片描述
5. 检查缺失值

# Function to calculate missing values by column# Funct 
def missing_values_table(df):
        # Total missing values
        mis_val = df.isnull().sum()
        
        # Percentage of missing values
        mis_val_percent = 100 * df.isnull().sum() / len(df)
        
        # Make a table with the results
        mis_val_table = pd.concat([mis_val, mis_val_percent], axis=1)
        
        # Rename the columns
        mis_val_table_ren_columns = mis_val_table.rename(
        columns = {0 : 'Missing Values', 1 : '% of Total Values'})
        
        # Sort the table by percentage of missing descending
        mis_val_table_ren_columns = mis_val_table_ren_columns[
            mis_val_table_ren_columns.iloc[:,1] != 0].sort_values(
        '% of Total Values', ascending=False).round(1)
        
        # Print some summary information
        print ("Your selected dataframe has " + str(df.shape[1]) + " columns.\n"      
            "There are " + str(mis_val_table_ren_columns.shape[0]) +
              " columns that have missing values.")
        
        # Return the dataframe with missing information
        return mis_val_table_ren_columns
missing_values = missing_values_table(data)
missing_values.head(20)

Your selected dataframe has 84 columns.
There are 72 columns that have missing values.
在这里插入图片描述

f, ax = plt.subplots(figsize=(12, 9))
sns.barplot(x=missing_values.index, y=missing_values['Missing Values'])
plt.ylabel('Features', fontsize=15)
plt.xlabel('Percent of missing values', fontsize=15)
plt.title('percent missing data by feature', fontsize=15)
plt.xticks(rotation=90)

在这里插入图片描述

data['student_feature'].describe()

count 1756.000000
mean 1.001139
std 0.033739
min 1.000000
25% 1.000000
50% 1.000000
75% 1.000000
max 2.000000
Name: student_feature, dtype: float64

data['student_feature'] = data['student_feature'].fillna(1)
data['cross_consume_count_last_1_month'].describe()

count 4328.000000
mean 0.642329
std 2.343228
min 0.000000
25% 0.000000
50% 0.000000
75% 1.000000
max 69.000000
Name: cross_consume_count_last_1_month, dtype: float64

data['cross_consume_count_last_1_month'] = data['cross_consume_count_last_1_month'].fillna(data['cross_consume_count_last_1_month'].mean())
data['query_cash_count'].describe()

count 4450.000000
mean 3.784719
std 2.599244
min 0.000000
25% 2.000000
50% 3.000000
75% 5.000000
max 16.000000
Name: query_cash_count, dtype: float64

data['query_cash_count'] = data['query_cash_count'].fillna(lambda x: x.fillna(x.mode()[0]))
cols  = ['latest_six_month_apply', 'latest_one_month_apply', 'query_sum_count', 'query_sum_count', 'query_finance_count', 'query_org_count']
for col in cols:
    data[col] = data[col].fillna(data[col].mean())
cols = missing_values.index
for col in cols:
    data[col] = data[col].fillna(data[col].mean())
missing_values = missing_values_table(data)
missing_values.head()

Your selected dataframe has 4396 columns.
There are 0 columns that have missing values.

data_label = data['status']
data = data.drop(['status'], axis=1)
X_train, X_test, y_train, y_test = train_test_split(data, data_label, test_size=.3, random_state=2018)
print("Training Size:{}".format(X_train.shape))
print('Testing Size:{}'.format(X_test.shape))

Training Size:(3327, 4395)
Testing Size:(1427, 4395)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chen19830/article/details/88068104

智能推荐

MATLAB-程序员宅基地

文章浏览阅读997次,点赞30次,收藏19次。LinkLinkfigure(1)1.figure(1):创建一个新的图形窗口,窗口编号为1。2.set(gcf,‘position’,[150 150 500 500]):设置当前图形窗口的位置和大小,坐标为(150,150),宽度和高度均为500。3.subplot(221):在当前图形窗口中创建一个2x2的子图,并将当前子图设置为第1个子图。

从DB2数据库到Mysql数据库移植数据-程序员宅基地

文章浏览阅读707次。由于前一阵,需求要求把项目数据从DB2移植到mysql,由我来做,我就尝试了一下。其中遇到了几个问题和一些心得记录如下:我做的方式比较笨了,如果有谁有更好的方式,希望不吝赐教。 方式1:利用UE编辑器,手工移植。首先,打开DB2控制台,查询要进行移植的表所有数据(当然我移植的表数据不算很多,一个表几千条)。然后,利用所选项——导出,视图数据到指定目录,得到表数据,其中列界定..._db2数据导入mysql数据类型转换

springboot大学生闲置用品网上交易平台 毕业设计-附源码24305-程序员宅基地

文章浏览阅读100次。管理员用户角色:(1)登录:管理员的账号是在数据表表中直接设置生成的,不需要进行注册;(2)网站管理:管理员可以对系统前台展示的轮播图以及网站公告进行增删改查,方便用户进行查看。(3)人员管理:管理员可以对大学生闲置用品网上交易平台中的管理员以及前台注册的买家用户、卖家用户进行审核管理。(4)内容管理:管理员可以对大学生闲置用品网上交易平台前台展示的留言板、留言分类、闲置资讯以及资讯所属的分类进行管控。(5)模块管理:在“模块管理”这一菜单下可以对系统当中的卖家用户以及买家用户操作的所有信息进行

Java安全之反序列化回显与内存码_反序列化执行命令回显-程序员宅基地

文章浏览阅读298次。0x00 前言#按照我个人的理解来说其实只要能拿到Request 和Response对象即可进行回显的构造,当然这也是众多方式的一种。也是目前用的较多的方式。比如在Tomcat 全局存储的Request 和Response对象,进行获取后则可以在tomcat这个容器下进行回显。而某些漏洞的方式会从漏洞的位置去寻找存储Request 和Response对象的地方。0x01 Tomcat通用回显#根据Litch1师傅的思路来寻找request,response对象全局存储的位置基于全局储存的新思路 | T_反序列化执行命令回显

miui 10 android 9,MIUI10开发版8.12.13发布 基于Android 9.0 小米Max3已更新-程序员宅基地

文章浏览阅读779次。截止目前,MIUI10开发版8.12.13已发布。其实,要按照MIUI官方推送的时间来计算,我手里的小米Max3早在前天就应该收到更新提醒。不过,稍微有些遗憾地是,由于小米Max3在抽屉里搁置太久,以至于今天上午当我拿出来使用时发现没电了。所以,充满电后立即看到了MIUI10开发版8.12.13的升级提醒消息。仅作行文需要当然,Max3升级过程这里就不再赘述。简单说说MIUI10开发版8.12.1..._miui10开发版最新版本

webstorm常用插件集合(2020)_webstorm 标签闭合插件-程序员宅基地

文章浏览阅读5.6w次,点赞12次,收藏112次。2016 年整理了一下自己常用的 webstorm 插件:webstorm常用插件集合不过毕竟现在已经 2020 年了,常用的插件已经发生了一些变化,重新整理一下。_webstorm 标签闭合插件

随便推点

计算机字符编码方式_计算机如何识别键盘上的字符,采用什么编码方案呢?-程序员宅基地

文章浏览阅读2.1k次。建议观看以下计算机字符编码方式科普视频《锟斤拷�⊠是怎样炼成的——中文显示“⼊”门指南【柴知道】》,bilibili @ 柴知道《你懂乱码吗?锟斤拷烫烫烫(详解 ASCII、Unicode、UTF-32、UTF-8编码)》,bilibili @ 林粒粒呀。_计算机如何识别键盘上的字符,采用什么编码方案呢?

gulp 生成 css-spriter-程序员宅基地

文章浏览阅读136次。使用gulp-css-spriter 默认会合并CSS中的所有图片,即生成一张css spriter图片文件路径:index.htmlgulpfile.jssassa.sassb.sassimg //存放原始图片和css spriter图片1.png2.pngcss //存放压缩后的css和经过图片处理的css文件gulpfile.js页面var gulp = require('gulp'), ..._gulp-css-spriter

gis数据下载地址-程序员宅基地

文章浏览阅读27次。行政区划边界(免费):

golang windows 环境搭建 环境配置_go1.21搭建windows-程序员宅基地

文章浏览阅读1k次,点赞7次,收藏9次。src:项目源代码目录,所有项目都放在此目录,在以前没有go mod管理出现时,项目代码必须放在这个目录,有了go mod后可以放在任意位置了,但我习惯这么配置,出现问题的概率会小很多。下载对应系统版本,例如windows 64位系统,下载:xxx.windows-amd64.zip。VScode,IDEA,Goland,Sublime 都可以作为Golang的开发工具。pkg:项目中用到的第三方包,go get 默认会下载到此目录。bin:安装的可执行程序,如:swag、bee。解压下载的对应版本的包。_go1.21搭建windows

Taro多端开发实现原理与项目实战(二)_taro 电商 相关项目-程序员宅基地

文章浏览阅读3.4k次。Taro多端开发实现原理与项目实战(二)多端电商平台项目概述及开发准备学习了前面的基础知识和进阶后是否跃跃欲试?我们准备了一个电商平台的项目来和大家一起实践使用 Taro 开发电商平台。项目概述电商平台可以看到的部分大致分为三个方面:信息服务(商详、商品列表)、交易(下单、购物车)及支付(微信、支付宝)。电商品台应用非常广泛,大型的商家入驻平台如淘宝、天猫、京东,中型的自营电商、垂直电商为主如小米商城、华为商城、美的商城,小型如小红书。电商平台背后的商品管理系统、仓储系统、物流系统、统._taro 电商 相关项目

备忘: 踩坑linux环境部署轻量化的Langchain-Chatchat集成通义千问_linux运行langchain-程序员宅基地

文章浏览阅读861次,点赞6次,收藏11次。linux环境安装langchain-chatchat_linux运行langchain