字符串方法是数据清洗中最直接、最轻量的工具,适用于统一格式、提取过滤、标准化分类、识别异常四类场景,通过str.lower()、str.strip()、str.replace()等基础操作即可高效解决文本型字段的常见脏数据问题。

字符串方法是数据清洗中最直接、最轻量的工具,尤其适合处理文本型字段的格式混乱问题。它们不依赖复杂模型或外部库,执行快、逻辑清晰,能覆盖大量日常清洗场景。
统一文本格式
大小写混杂、首尾空格、多余符号都会干扰后续匹配或分组。用 str.lower()、str.strip() 和 str.replace() 三步就能解决大部分基础问题。
- 统一小写:df['name'] = df['name'].str.lower()
- 清除首尾空白和制表符:df['desc'] = df['desc'].str.strip()
- 批量替换无用字符:df['phone'] = df['phone'].str.replace(r'[-\s()]+', '', regex=True)
提取与过滤关键内容
原始文本常夹杂无关信息(如HTML标签、括号备注、单位符号),需精准剥离或提取目标片段。
- 去除HTML标签:df['content'] = df['content'].apply(lambda x: BeautifulSoup(x, 'html.parser').get_text() if isinstance(x, str) else x)
- 提取数字部分:df['price'] = df['raw_price'].str.extract(r'(\d+\.?\d*)')
- 保留长度合理文本:df = df[df['title'].str.len().between(5, 200)]
标准化分类字段
类别型字符串(如“男”“Male”“M”“ 男性 ”)若不归一,会人为制造多个类别。关键是定义映射规则并批量应用。
- 去空格+转小写后映射:df['gender'] = df['gender'].str.strip().str.lower().map({'male': 'M', 'female': 'F', 'm': 'M', 'f': 'F'})
- 模糊匹配补全:对“unknwon”“n/a”等常见错拼,可用 str.contains() + loc 批量修正
- 截取固定前缀:df['region'] = df['code'].str[:2](适用于编码有结构规律的字段)
识别并标记异常模式
不是所有脏数据都要删,有时先打标再决策更稳妥。正则配合字符串方法可快速识别可疑值。
- 检测邮箱格式是否合规:df['is_valid_email'] = df['email'].str.contains(r'^[^\s@]+@[^\s@]+\.[^\s@]+$')
- 标记含乱码或控制字符的行:df['has_garbage'] = df['text'].str.contains(r'[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]', na=False)
- 识别全大写标题(可能为误抓):df['all_caps'] = df['title'].str.isupper() & (df['title'].str.len() > 10)











