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

如何使用PySpark移除DataFrame中City列的非ASCII及特定字符

PySpark DataFrame City列数据清洗实现方案

可以通过PySpark的regexp_replace函数结合正则表达式一次性处理所有需要移除的字符,具体实现如下:

核心思路

用正则表达式匹配所有待移除的目标内容,包括<sup>、</sup>标签、?字符以及所有非ASCII字符,通过regexp_replace将匹配到的内容替换为空字符串。

代码示例

from pyspark.sql.functions import regexp_replace

# 假设你的原始DataFrame名为df
cleaned_df = df.withColumn(
    "cleaned_city",  # 生成清洗后的新列,若需覆盖原列可改为"City"
    regexp_replace("City", r"<\/?sup>|\?|[^\x00-\x7F]", "")
)

正则表达式说明

  • <\/?sup>:匹配并移除<sup>和</sup>标签,\/?表示可选的斜杠,同时匹配两种标签格式
  • \?:匹配并移除?字符(正则中?是特殊元字符,需用反斜杠转义)
  • [^\x00-\x7F]:匹配并移除所有非ASCII字符(ASCII字符范围为十六进制\x00到\x7F,^表示取反)

清洗效果验证

针对你列出的City列取值,清洗后结果如下:

  • Venice® → Venice
  • VeniceÆ → Venice
  • Venice? → Venice
  • Venice<sup> → Venice
  • Venice<sup>®</sup> → Venice
  • Venice → Venice

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:50:52