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 方法实现链式调用,让代码更清晰、更可复用。