数据处理基本流程
儒冠多误身——个人总结-20181206
-
预处理
- 读取
- 观察
- 数据维度.shape
- 数据属性info()
- head()
- 合并
- 多表关联
-
NaN–>排序–>去重
-
缺失值处理
df.dropna()
-
缺失值诊断df.isnull()
-
缺失值统计
-
缺失值-舍弃
- 行 处理
- 列 处理
-
NaN-填补-df.fillna()
-
向前向后
df.fillna(method = 'ffill')#向后 df.fillna(method = 'bfill',limit=3)#控制填补数量
-
填充统计数据【均值、中位数、众数】
df['col'].fillna(df['col'].mean()) df['col'].fillna(df.groupby('')['col'].transform('mean')
-
-
内插法补齐【处理有规律的数据】
df.interpolater()
-
-
先排序【再去重】
- 因为排序会将该列NaN放在后面,确保之后的对其他列去重时,保留的该列元素不会为NaN
-
再去重
df.drop_duplicated(subset = ['col_2','col_5','col_6'])
-
-
数据类型,异常值处理,数据离散化分析(分箱)
- 类型转换
- 时间格式转换(Python,MySQL,Excel)
- 时间单位转换
- 时间格式转换(Python,MySQL,Excel)
- 异常值处理
- 从常识、业务角度 查找异常值
- 数据可视化,查找异常值
- 类型转换
-
数据抽样sampling
-
.sample()
- 取随机样本
DataFrame.sample(n=None, frac=None, replace=False,weights=None, random_state=None, axis=None*)
s.sample(n = 3)# 选3个随机元素 df.sample(frac = 0.1) # 随机取10%的元素 df.sample(n = 3)# 随机取3行
-
时间采样Series.resample()【详解笔记 时间序列 部分】
-
-
字符串处理
-
df['col'].str.*
函数df['col'].str.extract()#按字符串样式抽取【简单举例】
-
用 正则表达式 处理
-
用 自建函数 处理
-
-
行列取舍
- 结合业务,先删除和分析无关的指标
- 查看相关系数矩阵
- 查看多重共线性
- 相关性太大的可以考虑删除此列;
- 如果变量比较重要,可以考虑主成分/因子分析进行降维处理
- 个人数据处理基本流程整理完毕
2018-12-06