六个步骤学会简单的数据清洗

在使用机器学习等各种模型来分析数据的时候,最重要的就是如何对原始数据进行清洗和加工,以下几个步骤实现最简单的数据清洗;

以下使用 kaggle 上的泰坦尼克号经典数据集为例子;

daownload link:https://link.zhihu.com/?target=https%3A//www.kaggle.com/hesh97/titanicdataset-traincsv

一、读取数据

import pandas as pd
import numpy as np

data_raw = pd.read_csv('train.csv')
data_raw

六个步骤学会简单的数据清洗_第1张图片

 二、了解数据

1.数据整体预览

data_raw.info()
data_raw.describe(include='all')

六个步骤学会简单的数据清洗_第2张图片

六个步骤学会简单的数据清洗_第3张图片

三、检查填充数据缺失情况

data = data_raw.copy(
data.isnull().sum()

 六个步骤学会简单的数据清洗_第4张图片

1.数据缺失情况

3种特征有null值,Age特征177个,Cabin特征687个,Embarked 2个;
总共891个数据,Cabin缺失687个,有两种解决方案;

1.是认为这个特征没用,直接去掉;

2.是对这个数据做处理(统计Nan值,或者更加关注未缺失的数据,可能有大用)

2. 填充处理

null较少的两个特征填充数据,其中Age特征是数值型(Numeric)特征,Embarked特征是类别型(Categorical)特征
数值型可以用mean,median等填充
类别型可以用.mode(),取出现次数最多的

data['Age'].fillna(data['Age'].median(), inplace = True)
data['Embarked'].fillna(data['Embarked'].mode()[0], inplace = True)

data.isnull().sum()

六个步骤学会简单的数据清洗_第5张图片

 四、特征工程

1. 去除掉认为没用的特征

drop_column = ['PassengerId','Cabin', 'Ticket']
data = data.drop(drop_column, axis=1, inplace = True)

2.构建新特征

data['FamilySize'] = data['SibSp'] + data['Parch'] + 1

data['single'] = np.where(data['FamilySize'] > 1,0,1)

data['Title'] = data['Name'].str.split(", ", expand=True)[1].str.split(".", expand=True)[0]

data

六个步骤学会简单的数据清洗_第6张图片

3.对连续型特征做分箱处理 

data['FareCut'] = pd.qcut(data['Fare'], 4)
data['AgeCut'] = pd.cut(data['Age'].astype(int), 6)
data

五、对离散/文本类特征做编码处理

1. LabelEncoder方法

from sklearn.preprocessing import LabelEncoder

label = LabelEncoder()
data['Sex_Code'] = label.fit_transform(data['Sex'])
data['Embarked_Code'] = label.fit_transform(data['Embarked'])
data['Title_Code'] = label.fit_transform(data['Title'])
data['AgeBin_Code'] = label.fit_transform(data['AgeCut'])
data['FareBin_Code'] = label.fit_transform(data['FareCut'])
data

六个步骤学会简单的数据清洗_第7张图片

 2.get_dummies方法

pd.get_dummies(data['Sex'])

六个步骤学会简单的数据清洗_第8张图片

 六、最后检查数据

data.info()

六个步骤学会简单的数据清洗_第9张图片

 以上就完成了最简单的数据清洗,可以使用算法模型进行后续计算了

你可能感兴趣的:(机器学习,python,机器学习,数据分析)