实际数据很少是干净的,缺失值、异常值、重复值都需要处理。这篇用 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)

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐