【问题标题】:Pandas - remove numbers from start of string in seriesPandas - 从系列字符串的开头删除数字
【发布时间】:2017-08-10 05:31:03
【问题描述】:

我有一系列地址,想要一个仅包含街道名称的系列。唯一的问题是有些地址没有门牌号,有些则有。

如果我有一个看起来像这样的系列:

Idx
 0      11000 SOUTH PARK
 1      20314 BRAKER LANE
 2      203 3RD ST
 3      BIRMINGHAM PARK
 4      E 12TH

我会写什么函数来获取

Idx
 0      SOUTH PARK
 1      BRAKER LANE
 2      3RD ST
 3      BIRMINGHAM PARK
 4      E 12TH

字符串开头完全由数字字符组成的任何“单词”已被删除?正如您在上面看到的,我想保留“3RD STREET”开头的 3。我在想一个正则表达式,但这超出了我的范围。谢谢!

【问题讨论】:

    标签: python pandas series


    【解决方案1】:

    您可以使用str.replace 和正则表达式^\d+\s+ 来删除前导数字:

    s.str.replace('^\d+\s+', '')
    
    Out[491]:
    0         SOUTH PARK
    1        BRAKER LANE
    2             3RD ST
    3    BIRMINGHAM PARK
    4             E 12TH
    Name: Idx, dtype: object
    

    【讨论】:

      【解决方案2】:

      str.replace('\d+\s', '') 是我想出的:

      df =  pd.DataFrame({'IDx': ['11000 SOUTH PARK',
                              '20314 BRAKER LANE',
                              '203 3RD ST',
                              'BIRMINGHAM PARK',
                              'E 12TH']})
      
      df
      Out[126]: 
                       IDx
      0   11000 SOUTH PARK
      1  20314 BRAKER LANE
      2         203 3RD ST
      3    BIRMINGHAM PARK
      4             E 12TH
      
      df.IDx = df.IDx.str.replace('\d+\s', '')   
      
      df
      Out[128]: 
                     IDx
      0       SOUTH PARK
      1      BRAKER LANE
      2           3RD ST
      3  BIRMINGHAM PARK
      4           E 12TH
      

      【讨论】:

        猜你喜欢
        • 2015-01-28
        • 1970-01-01
        • 2016-03-16
        • 1970-01-01
        • 1970-01-01
        • 2015-02-03
        • 2021-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多