一、简介
数据清洗 是数据科学中的关键一步,它涉及到处理数据空值、删除重复信息、提供正确的数据格式等等。数据清洗往往发生在一个项目最开始的阶段,经常用到的工具是 pandas,还会用到 numpy 和 sklearn 。 通常通过以下方法引入 pandas 和 numpy :
import pandas as pd
import numpy as np
二、数据鸟瞰和空值处理
1. 数据鸟瞰
通过以下方式查看dataframe中的一些例子:
df.head(n)
df.tail(n)
df.sample(n)
通过以下方式查看dataframe的数值特征和摘要:
df.describe()
df.info()
2. 空值处理
通过以下方法查看dataframe中每列的的空值:
df.isnull().sum()
通过以下方法可以丢弃空值:
df.dropna(axis=0)
通过以下方法填充空值:
df.fillna(
value = None,
method = None,
axis = None
)
三、缩放(Scaling)、归一化(MinMax)和标准化(Normalization)
1. 缩放和归一化
数据的 缩放 通过变换将数据映射到特定的区间上,从而使不同维度上的特征有一定比较性,以此适应不同算法(如SVM、KNN)的需求。 归一化 是一种特殊的缩放方式,它将数据放缩到区间 [0,1] ,公式为:
x
?
=
x
?
m
i
n
m
a
x
?
m
i
n
x^* = \frac{x - min}{max-min}
x?=max?minx?min? 可以通过 sklearn 库中的MinMaxScaler 实现归一化。
from sklearn.preprocessing import MinMaxScaler
mmx_sca = MinMaxScaler()
data_mmx = mmx_sca.fit_transform(data)
2. 标准化
标准化 可以将数据分布转换为正态分布,是数据更加符合统计假设。公式如下:
x
?
=
x
?
μ
σ
x^* = \frac{x-\mu}{\sigma}
x?=σx?μ? 其中
μ
\mu
μ 为均值,
σ
\sigma
σ 为方差。 可以通过 sklearn 库中的StandardScaler 实现归一化。
from sklearn.preprocessing import StandardScaler
std_sca = StandardScaler()
data = sta_sca.fit_transform(data)
四、时间转换
datetime 是python内置的处理时间的标准库。pandas 中有专门处理时间的函数 pd.to_datetime ,将数据转换为时间类型(datatime 类)。
import pandas as pd
import datetime
pd.to_dateime(series,format="%Y/%m/%d")
其中format是数据中时间的格式。也可以用 datetime 库中的 strptime 实现以上功能。
五、字符编码
字符编码主要为避免乱码的出现。python3中提供了方便的编码/解码函数。
before = binary.decode("big5-tw")
after = before.encode()
六、不一致的数据输入
不一致的输入的意思是相同的内容却用了不同的形式表示,如 “Germany” 和 “germany”,如果将其放入输入中,函数将会将其视为两个类别。 可以使用 pandas 中的Series.str 方法,这样你就可以对整列使用熟悉的 python3 字符串方法。 比如
df["column"].str.strip()
通过 unique() 方法创建集合从而达到去重的目的
df["column"].unique()
|