Pandas 高效数据清洗的 20 个技巧

Pandas 高效数据清洗的 20 个技巧

数据清洗是数据分析的第一步,也是最耗时的环节。掌握高效的 Pandas 技巧,可以让你的数据预处理效率提升数倍。本文总结了 20 个最实用的技巧。

缺失值处理是最常见的清洗任务:

示意图
示意图
# 智能填充:根据分组均值填充缺失值
df["salary"] = df.groupby("department")["salary"].transform(
    lambda x: x.fillna(x.median())
)

# 多列联合判断缺失
df_clean = df.dropna(subset=["email", "phone"], how="all")

# 前向填充 + 插值组合
df["value"] = df["value"].fillna(method="ffill").interpolate()

字符串规范化是另一个常见痛点:

# 统一电话号码格式
df["phone"] = df["phone"].str.replace(r"\D", "", regex=True)

# 提取邮箱域名
df["email_domain"] = df["email"].str.extract(r"@([\w.]+)")

# 拆分复合字段
df[["city", "district"]] = df["address"].str.split("市", n=1, expand=True)

对于重复数据处理,drop_duplicates 配合 subset 参数可以精确控制去重逻辑。而 merge 时的重复列名问题,可以通过 suffixes 参数优雅解决。在处理百万级数据时,将 object 类型转为 category 可以节省 90% 以上的内存,这是最容易被忽视的优化技巧。

最后,建议将常用的清洗步骤封装为函数,配合 pipe 方法实现链式调用,让代码更清晰、更可复用。