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
相关产品推荐
相关产品推荐

