Pandas正则表达式:提取空格与冒号之间的子字符串
提取Pandas DataFrame中门店编号的实现方法
假设你的DataFrame结构如下:
import pandas as pd data = { 'store': [ 'H-E-B 721:1101 W STAN SCHLUETER LOOP,KILLEEN,TX', 'H-E-B PLUS 39:2509 N MAIN ST,BELTON,TX' ] } df = pd.DataFrame(data)
方法一:按照你的思路实现(无需正则)
完全匹配你“找冒号位置→反向切片到最近空格”的逻辑,通过字符串分割分步处理:
# 先按冒号分割,取冒号前的部分;再从后往前分割1次空格,取最后一段就是编号 df['store_num'] = df['store'].str.split(':').str[0].str.rsplit(' ', 1).str[1]
方法二:正则表达式实现(更简洁)
直接匹配冒号前的连续数字序列,一步到位:
# 用正则捕获冒号前的数字,extract会返回捕获到的内容 df['store_num'] = df['store'].str.extract(r'(\d+):')
如果需要将提取的编号转为整数类型,只需追加.astype(int):
df['store_num'] = df['store'].str.extract(r'(\d+):').astype(int)
内容的提问来源于stack exchange,提问作者Iterator516
相关产品推荐
相关产品推荐

