实际数据很少是干净的,缺失值、异常值、重复值都需要处理。这篇用 pandas 把这三种情况说清楚。
一、缺失值处理
importpandasaspdimportnumpyasnp# 查看缺失值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 法fromscipyimportstats 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)💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!