金融数据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

智能推荐

MySQl建库建表及增删改查_头歌实践教学平台数据库用户数据库的创建及删除-程序员宅基地

文章浏览阅读427次。通过可视化工具建库建表创建数据库CREATE DATABASE studb2 CHAR SET utf8;切换数据库(使用use 将数据库切换到 studb2)USE studb2 ;在studb2 中创建名为t_stu的表CREATE TABLE t_stu( sid VARCHAR(10) , sname VARCHAR(20), age INT, height FLOAT , weight DOUBLE)CHAR SET utf8_头歌实践教学平台数据库用户数据库的创建及删除

readelf_windows readelf-程序员宅基地

文章浏览阅读120次。系统里的目标文件是按照特定的目标文件格式来组织的,各个系统的目标文件格式都不相同。从贝尔实验室诞生的第一个Unix系统使用的是a.out格式(直到今天,可执行文件仍然称为a.out文件)。Windows使用可移植可执行(PortableExecutable,PE)格式。Mac OS-X使用Mach-O格式。现代x86-64Linux和Unix系统使用可执行可链接格式(Executable and Linkable Format,ELF)。_windows readelf

详解冬奥冠军背后的AI黑科技-程序员宅基地

文章浏览阅读3.6k次。用人工智能普惠体育发展。

form表单提交的几种方式_提交表单-程序员宅基地

文章浏览阅读10w+次,点赞92次,收藏495次。表单提交方式一:直接利用form表单提交html页面代码:<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Insert title here</title></head><body><form action="h..._提交表单

Unity Spine SkeletonGraphic 动画重复播放 过度残影透明渐变Bug 解决方案_unity skeletongraphic-程序员宅基地

文章浏览阅读5.1k次。Unity Spine SkeletonGraphic 重复播放 过度残影Bug 解决方案不推荐使用SetToSetupPose和Setup Pose相关,代码直接贴上/// <summary>/// Spine播放设置/// </summary>/// <param name="trackIndex">填写0</param>/// <param name="animationName">动画名</param>/// &l_unity skeletongraphic

高斯分布3——边缘概率与条件概率_高斯分布的条件概率-程序员宅基地

文章浏览阅读3.5k次。一、推导过程:二、结果:边缘分布x1,x2 各自依然服从 μi,写反差矩阵 Σii 的多元高斯分布;条件概率分布给定 xj 求 xi 的分布:μi|j=μi+ΣijΣ−1jj(xj−μj)Σi|j=Σjj−ΣTijΣ−1iiΣij..._高斯分布的条件概率

随便推点

基于OFDM+64QAM系统的载波同步matlab仿真,输出误码率,星座图,鉴相器,锁相环频率响应以及NCO等-程序员宅基地

文章浏览阅读454次。正交频分复用(OFDM)是一种在现代通信系统中广泛使用的调制技术,它具有高效的频谱利用和抗多径衰落等特点。64QAM(64-ary Quadrature Amplitude Modulation)是一种调制方式,可以在每个符号中传输更多的位信息。在OFDM系统中,保持载波同步对确保数据传输的可靠性至关重要。_基于ofdm+64qam系统的载波同步matlab仿真,

Springboot毕设项目超市商品销售管理系统37x2w(java+VUE+Mybatis+Maven+Mysql)_vue+springboot+mybatis商品管理系统-程序员宅基地

文章浏览阅读67次。Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。若包含,则为maven项目,否则为非maven项目。Springboot毕设项目超市商品销售管理系统37x2w(java+VUE+Mybatis+Maven+Mysql)Springboot + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。其他版本理论上也可以。_vue+springboot+mybatis商品管理系统

关掉\禁用win7自动配置ipv4地址的方法 默认网关自动消失的解决办法_禁止修改网关命令-程序员宅基地

文章浏览阅读3w次,点赞2次,收藏4次。转载自: http://blog.csdn.net/zouqin369/article/details/6913692 今天去公司设置好IP后,无论怎么样都上不了internet,再次打开本地后发现默认网关自动消失,cmd下输入ipconfig后的现象如下: 物理地址. . . . . . . . . . . . . : 00-22-64-55-76-8F DHCP 已启用_禁止修改网关命令

Extjs4.2 window加载HTML,父子页面html传参_extjs中打开网页怎么传参-程序员宅基地

文章浏览阅读482次。Extjs的窗口是可以加载自己的HTML的,但这样两个页面就相当独立了,传参是个问题 ,网上也没有很好的解答清楚,猫猫今天就说清楚这个模式的传参要点。_extjs中打开网页怎么传参

计算机网络复习——Ch3点到点数据链路层_hdlc go-back-n-程序员宅基地

文章浏览阅读1.2k次。Ch3点到点数据链路层知识点1. 点到点数据链路层要解决的主要问题2. 常见的帧管理(帧定界)方法3. CRC的计算4. 流量控制的基本原理5. 常见错误及其处理机制6. 滑动窗口的概念、形式及工作原理7. ARQ(Automatic Repeat reQuest)协议工作原理:8. 连续ARQ(Go-back-N ARQ)工作原理(特别注意累计确认):9. 选择重传ARQ工作原理10. 了解(高..._hdlc go-back-n

推荐文章

热门文章

相关标签