pandas数据预处理
——脏数据
- 空值处理
- 重复值处理
- 异常值
- 数据类型转换
——结构问题
- 索引设置
*****************************************************************************************************************
- 空值处理
* 查看 df.isnull()
* 删除 df.dropna() 默认删除包含空值的这一行 如果这一行全为空值时再删除,则设置df.dropna(how = "all")
* 填充 df.fillna() df.fillna({"性别":"男", "年龄":"30"}) —— 对多列填充不同值
- 重复值处理
* 删除 df.drop_duplicates() 默认保留首次出现的行 keep="last" 保留最后出现的 keep=Flase 重复值全部删除
- 异常值的检测与处理
* 检测:相比正常数据过高/过低的数据。(超过划定的正常范围、箱式图上下边缘以外的点、正态分布偏差超过3σ的值)
* 处理:删除、填充、当特殊值研究——Python中的过滤、replace()等
- 数据类型转换
.dtype() 查看数据类型 .astype("float64") 转换数据类型
- 索引设置
* 添加索引: df.index = [1,2,3,4,5]
* 重设索引: df.set_index ("订单编号") —— 以订单编号作为新索引 层次索引——set_index()里传入两个/多个参数
* 重命名索引: df.rename(index = {1:"一", 2:"二",3:"三"},columns = {"订单编号":"新订单编号"})
* 重置索引: 针对层次化索引,将索引转为列 默认全部转化df.reset_index()
df.reset_index(level = 0)——将第0级索引转化为columns df.reset_index(level = 1)——将第1级索引转化为columns