You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除Pandas DataFrame中Description列的指定字符与数字?

解决Pandas DataFrame文本清洗问题

没问题,我来帮你搞定这个Description列的清洗需求!你需要移除#、-、*和所有数字,同时整理掉多余的空格,用正则表达式结合Pandas的字符串方法就能轻松实现,具体步骤如下:

实现代码

import pandas as pd
import re

# 初始化你的原始DataFrame
df = pd.DataFrame({
    'id': [1, 2, 3],
    'Description': [
        '2694 A&W #5530 MONTREAL QC',
        'ahi DOLLARAMA # 45 MONTREAL QC',
        'PC - PAYMENT FROM - *****11*22'
    ]
})

# 第一步:移除所有目标特殊字符和数字
df['Description'] = df['Description'].str.replace(r'[#\-*\d]+', '', regex=True)

# 第二步:清理多余空格(多空格转单空格,同时去除首尾空格)
df['Description'] = df['Description'].str.replace(r'\s+', ' ', regex=True).str.strip()

# 查看处理后的结果
print(df)

代码说明

  • 第一个正则表达式r'[#\-*\d]+':匹配一个或多个#、-、*或者数字(\d代表数字),把这些匹配到的内容直接替换为空字符串。注意-在正则字符集里需要转义,避免被当成范围符号。
  • 第二步的r'\s+':匹配一个或多个连续空格,替换成单个空格,再用str.strip()去掉文本首尾可能残留的空格,确保格式整洁。

运行这段代码后,你就能得到和预期完全一致的结果:

id                  Description
0   1           A&W MONTREAL QC
1   2  ahi DOLLARAMA MONTREAL QC
2   3               PC PAYMENT FROM

如果之后需要移除其他特殊字符,只需要在第一个正则的字符集里添加对应的符号即可,比如要移除@就改成r'[#\-*\d@]+'。

内容的提问来源于stack exchange,提问作者Jerry George

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:25:44