任务1 - 数据分析(2天)
说明:这份数据集是金融数据(非原始数据,已经处理过了),我们要做的是预测贷款用户是否会逾期。表格中 "status" 是结果标签:0表示未逾期,1表示逾期。
要求:数据切分方式 - 三七分,其中测试集30%,训练集70%,随机种子设置2018
任务1:对数据进行探索和分析。时间:2天
- 数据类型的分析
- 无关特征删除
- 数据类型转换
- 缺失值处理
- ……以及你能想到和借鉴的数据分析处理
我的结果
主要步骤:
1.删除重复行;
2.无关特征删除: 删除无关信息列,删除值全一致的列;
3.数据类型转换:利用pandas实现one hot encode的方式,转换枚举类型的object为int;
4.缺失值处理:有特殊含义填0或1,没有特殊含义填众数;
5.切分数据:测试集30%,训练集70%,随机种子设置2018;
#!/usr/bin/python
# -*- coding:utf-8 -*-
from sklearn.model_selection import train_test_split
import pandas as pd
data = pd.read_csv('data.csv', encoding='gbk')
# 1.删除重复行;
data_clean = data.drop_duplicates()
# 2.无关特征删除: 删除无关信息列,删除值全一致的列;
drop_columns = ['Unnamed: 0', 'trade_no', 'id_name', 'bank_card_no',
'query_org_count', 'query_finance_count', 'query_cash_count', 'latest_query_time', ]
for data_col in data.columns:
if len(data[data_col].unique()) == 1 and data_col not in drop_columns:
drop_columns.append(data_col)
data_clean = data_clean.drop(drop_columns, axis=1)
# 3.数据类型转换:利用pandas实现one hot encode的方式,转换枚举类型的object为int;
data_clean = pd.get_dummies(data_clean, columns=['reg_preference_for_trad'])
# 4.缺失值处理:有特殊含义填0或1,没有特殊含义填众数;
data_clean['student_feature'].fillna(0, inplace=True)
data_cols = data_clean.columns.values
for data_col in data_cols:
fill_value = data_clean[data_col].value_counts().index[0]
data_clean[data_col].fillna(fill_value, inplace=True)
# 5.切分数据:测试集30%,训练集70%,随机种子设置2018
train_data, test_data = train_test_split(data_clean, test_size=0.3, random_state=2018)
train_data.to_csv('training.csv', index=False, header=True)
test_data.to_csv('testing.csv', index=False, header=True)