【问题标题】:Regular expression in Pandas: Get substring between a space and a colonPandas 中的正则表达式:获取空格和冒号之间的子字符串
【发布时间】:2023-01-06 23:35:41
【问题描述】:
我有一个带有 store 列的 Pandas 数据框。它包含如下所示的商店列表:
H-E-B 721:1101 W STAN SCHLUETER LOOP,KILLEEN,TX
H-E-B PLUS 39:2509 N MAIN ST,BELTON,TX
我想要商店编号,在上面的例子中是721和39。
这是我的获取过程:
- 找到冒号的位置。
- 向后切片直到到达一个空格。
我如何在 Python/Pandas 中执行此操作?我猜我需要使用正则表达式,但我不知道如何开始。
【问题讨论】:
标签:
python
pandas
regex
substring
slice
【解决方案1】:
您可以将功能应用于商店列
def retrieve_store_number(text):
return text.split(":")[0].split()[-1]
df["store_number"] = df.store.apply(retrieve_store_number)
【解决方案2】:
您可以将 str.extract 与 (d+): 正则表达式一起使用:
df['number'] = df['store'].str.extract('(d+):', expand=False).astype(int)
输出:
store number
0 H-E-B 721:1101 W STAN SCHLUETER LOOP,KILLEEN,TX 721
1 H-E-B PLUS 39:2509 N MAIN ST,BELTON,TX 39
regex demo