Intro

本文用于整理数据预处理过程中的常见基础代码,不讲解背景知识。

导入常用库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import importlib
import sklearn as sk
from importlib import reload
# 若是在mac OS 下使用Jupyter notebook or jupyter lab
# 这样可以使用高清视图呈现数据可视化结果
%matplotlib inline
%config InlineBackend.figure_format = 'retina'

加载数据集

sklearn自带数据集加载,用于自行练习

# 数据集加载:sklearn自带数据集
# load_* 同样的方式可以加载其它学多小体积的数据集
from sklearn.datasets import load_iris
iris_data = load_iris()
# 数据集的描述信息
print(iris_data.DESCR)
# features
iris_data.data
# labels
iris_data.target

加载外部数据集,如csv

df = pd.read_csv("./train.csv")
# 以pd.read_*还有很多类似的加载数据集的方法。
# 可以用同样的方式加载json html类型的数据集

参数

sep: 分隔符,一般csv文件会用,作分隔符

encoding: 编码方式,一般用utf-8编码

数据的统计可视化

本文涉及到的plt.plot功能强大,包含大量实用参数,请自行查阅官方文档

数据的简单统计描述

连续(数值型):df['WoodDeckSF'].describe()

python怎么加载模型 python怎么加载数据集_直方图

离散:df['MSZoning'].describe()

python怎么加载模型 python怎么加载数据集_加载_02

直方图+kde曲线

直方图+kde曲线:sns.distplot(df['WoodDeckSF'])

python怎么加载模型 python怎么加载数据集_数据集_03

参数:

y轴: 概率密度

bins: 指定直方图的桶个数,若未指定,则为API会提供一个默认合适的大小。桶是均分的,有时可能会想知道桶的具体大小是多少,就需要指定bins,然后计算 每个桶的大小*density 即可得到直方图每个区域代表的数量多少

hist=True: 显示直方图

kde=True: 显示kde曲线

箱型图

python怎么加载模型 python怎么加载数据集_直方图_04

如果一个值小于QL-1.5IQR或大于QU+1.5IQR的值,则被称为异常值。QL为下四分位数,表示全部观察值中有四分之一的数据取值比它小;QU为上四分位数,表示全部观察值中有四分之一的数据取值比它大;IQR为四分位数间距,是上四分位数QU与下四分位数QL的差值,包含了全部观察值的一半。

sns.boxplot(data=df['LotFrontage'])

python怎么加载模型 python怎么加载数据集_python数据集的预处理_05

sns.boxplot(x = 'MSZoning', y = 'LotFrontage', data = df.loc[:, ['MSZoning','LotFrontage']])

python怎么加载模型 python怎么加载数据集_加载_06

sns.boxplot(data=df['LotFrontage'], whis=10) 注意观察最大值和最小值的变化

python怎么加载模型 python怎么加载数据集_python怎么加载模型_07

sns.boxplot(data=df['LotFrontage'], whis=30)

python怎么加载模型 python怎么加载数据集_直方图_08

参数

data: 数据集

x

y

whis: 原箱型图中,最大值取数据集中 小于等于 QU + 1.5 * IQR的最大值,最小值取 大于等于 QL - 1.5 * IQR的最小值,这个1.5就是whis

曲线图

plt.plot(np.linspace(0,10,1000), np.sin(np.linspace(0,10,1000)), '--')

python怎么加载模型 python怎么加载数据集_数据集_09

参数

第一个参数:x

第二个参数:y

第三个参数:点线样式

散点图

sns.scatterplot(x = 'LotFrontage', y = 'LotArea', data = df.loc[:, ['LotFrontage','LotArea']])

python怎么加载模型 python怎么加载数据集_直方图_10

plt.plot(df.LotFrontage, df.LotArea, 'go', markersize=10, markeredgecolor='white')

python怎么加载模型 python怎么加载数据集_加载_11

参数(不要带参数名,直接穿参即可,否则会报错

第一个参数(x):x轴数据

第二个参数(y):y轴数据

第三个参数:指定点样式,颜色等

markeredgecolor: 点边颜色

markersize: 点大小

plt.scatter(x = df.LotFrontage, y = df.LotArea, edgecolors='white')

python怎么加载模型 python怎么加载数据集_加载_12

参数:

x

y

edgecolors: 点边颜色

s: 点大小参数,若为标量则是统一设置相同大小,若为n维(n是数据集大小)向量则每个点设置不同大小

c: 点颜色,同s

marker: 点样式

alpha: 透明度,0(透明)~ 1(非透明)

散点图个人更习惯使用scatter

扇形图

plt.pie(x = df.groupby('MSZoning').count().Id, labels = df.groupby('MSZoning').count().Id.index,\ radius=3, autopct="%.2f%%", shadow=True, explode=[0, 1, 0, 0, 0])

python怎么加载模型 python怎么加载数据集_python怎么加载模型_13

参数:

x: 数据集

labels: 给每个饼对应的标签

radius: 指定圆半径

autopct="%.2f%%": 在每个扇区显示小数点后两位精度的百分比

pctdistance: 百分比距离圆心的放置距离

labeldistance: 标签距离圆心的放置距离

shadow: 阴影

explode: array, len(array) = len(x), 指定每个扇区距离圆心的放置距离