【问题标题】: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

我想要商店编号,在上面的例子中是72139

这是我的获取过程:

  1. 找到冒号的位置。
  2. 向后切片直到到达一个空格。

    我如何在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-11
        • 2013-07-18
        • 2011-07-17
        • 2010-09-29
        相关资源
        最近更新 更多