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

Python如何按条件从地址字符串中提取指定分段内容

实现方案

1. 纯Python原生实现(无需第三方库)

直接通过列表推导式遍历处理每个地址字符串,按空格拆分后取索引1、2的元素拼接即可(Python序列从0开始计数,第2个元素对应索引1,第3个对应索引2),代码如下:

data = {'addr': ['Seoul Gangnam Apgujeong 38-5', 'Seoul Songpa Jamsil 40-1 5-1302', 'Jeju Jeju Aewol 31-5', 'Busan Haeuondae Centum 70-1 7-141']}

# 核心处理逻辑
data['addr'] = [' '.join(addr.split()[1:3]) for addr in data['addr']]

处理后直接得到你需要的目标结果,该方案逻辑简单,适合小数据量场景使用。

2. Pandas实现(适合大批量数据高效处理)

如果你的数据集规模较大,用Pandas的矢量化操作处理效率更高,代码如下:

import pandas as pd

data = {'addr': ['Seoul Gangnam Apgujeong 38-5', 'Seoul Songpa Jamsil 40-1 5-1302', 'Jeju Jeju Aewol 31-5', 'Busan Haeuondae Centum 70-1 7-141']}
df = pd.DataFrame(data)

# 矢量化处理,无需循环遍历
df['addr'] = df['addr'].str.split().str[1:3].str.join(' ')

# 处理完成后可按需转回字典格式
data = df.to_dict(orient='list')

异常兼容说明

如果存在部分地址按空格拆分后元素不足3个的情况,可以加判断避免索引报错,原生写法调整如下:

data['addr'] = [' '.join(addr.split()[1:3]) if len(addr.split()) >= 3 else addr for addr in data['addr']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:24:06