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

如何用正则表达式移除DataFrame中address列数字间的空格?

解决DataFrame地址列中数字间空格的移除问题

没问题,这个需求用正则表达式配合pandas的字符串处理功能就能完美解决,我直接给你上可运行的方案,再解释下细节:

核心思路

我们需要精准匹配数字与数字之间的空格,并且只替换这类空格,避免误删地址里其他正常的空格(比如街道名和城市之间的空格)。这里用正则的捕获组就能实现精准定位。

具体代码实现

import pandas as pd

# 构造示例数据
data = {'address': ['2 47, Philiproad, London, uk', '12 4, Northhall, London, uk']}
df = pd.DataFrame(data)

# 用正则替换数字间的空格
df['address'] = df['address'].str.replace(r'(\d)\s+(\d)', r'\1\2', regex=True)

print(df['address'])

代码解释

  • r'(\d)\s+(\d)':这个正则表达式的意思是:
    • (\d):捕获第一个数字(用括号标记为捕获组1)
    • \s+:匹配一个或多个连续的空格
    • (\d):捕获空格后的第二个数字(标记为捕获组2)
  • r'\1\2':替换时把捕获组1和捕获组2的内容直接拼接,相当于删掉了中间的空格
  • regex=True:明确告诉pandas我们要用正则模式替换(虽然默认是True,但写上更清晰)

扩展场景

如果你的数据里存在多个连续数字间的空格(比如'1 2 3, xxx Street'),这个方案也能自动全局替换,最终会变成'123, xxx Street',完全符合需求。

运行上面的代码后,你会得到想要的结果:

0    247, Philiproad, London, uk
1    124, Northhall, London, uk
Name: address, dtype: object

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:19:49