Python 数据清洗实战——缺失值、异常值、重复值处理
·
实际数据很少是干净的,缺失值、异常值、重复值都需要处理。这篇用 pandas 把这三种情况说清楚。
一、缺失值处理
import pandas as pd
import numpy as np
# 查看缺失值
print(df.isnull().sum())
# 删除缺失值
df.dropna(subset=["姓名"], inplace=True)
# 填充缺失值
df["年龄"].fillna(df["年龄"].mean(), inplace=True) # 均值填充
df["工资"].fillna(df["工资"].median(), inplace=True) # 中位数填充
df["部门"].fillna("未知", inplace=True) # 固定值填充
df["评分"].fillna(method="ffill", inplace=True) # 前向填充
二、异常值处理
# Z-score 法
from scipy import stats
z = np.abs(stats.zscore(df["工资"]))
df = df[z < 3] # 去掉 Z-score > 3 的
# IQR 法
Q1 = df["工资"].quantile(0.25)
Q3 = df["工资"].quantile(0.75)
IQR = Q3 - Q1
df = df[(df["工资"] >= Q1 - 1.5 * IQR) & (df["工资"] <= Q3 + 1.5 * IQR)]
三、重复值处理
# 查看重复
print(df.duplicated().sum())
print(df.duplicated(subset=["姓名"]).sum())
# 删除重复
df.drop_duplicates(inplace=True)
df.drop_duplicates(subset=["姓名"], keep="last", inplace=True)
💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!
更多推荐


所有评论(0)