数据清洗
读取数据
import pandas as pd
data = pd.read_csv(path)
unique()
查看重复值
data.duplicated().unique()
data.duplicated()
:这个方法会检查DataFrame中的每一行,看它是否与之前的行完全相同(基于所有列)。如果某行与前面的行重复会被标记为True,否则为False。这个方法主要用于识别数据中的重复记录。unique()
在这里会返回一个包含这两个布尔值的数组
重复值处理
drop_duplicates()
删除重复行
data.drop_duplicates(inplace=True)
inplace
参数为True时,将永久性修改原数据,为False则不修改原数据
list()
通过循环列表查找相同数据去重
data.list()
set()
通过查找集合特征(元素唯一)去重
data.set()
equals()
属性去重复
data.equals()
isnull()
查看缺失值
data.isnull().sum()
插补方法
平均数、中位数、众数插补
根据属性值的类型,用该属性取值的平均数、中位数、众数进行插补
使用固定值
将缺失的属性值用一个常量替换
最近邻插补
在记录中找到与缺失样本最接近的样本对应属性值进行插补
回归方法
对带有缺失值的变量,根据已有数据和与其有关的其他变量(因变量)的数据建立拟合模型来预测缺失的属性值
插值法
利用已知点建立合适的插值函数f(x),未知值由对应点x,求出的函数值f(x)近似代替
异常值处理
样本中的个别数值明显偏离其余的观测值。
方法:删除含有异常值的记录、视为缺失值、平均值和不处理。
数据变换
数据标准化
最小-最大标准化(离差标准化)
(data – data.min()) / (data.max() – data.min()))
零 -均值标准化(标准差标准化)
(data – data.mean()) / data.std())
小数定标标准化
Data / 10 ** np.ceil(np.log10(data.abs().max()))
数据离散化
些数据分析算法,特别是某些分类算法,如ID3算法、KNN算法等,要求使用类别属性形式的数据,因此常常需要将连续属性变换成类别属性,即连续属性离散化。
- 等宽法
- 等频法
- (一维)聚类
独热编码
统计时间出现次数
user_log_df.action_type.value_counts()
# 把分类变量转换成“独热编码”
pd.get_dummies(user_log_df.action_type)