熊猫 - 从系列

时间:2017-08-09 21:08:22

标签: python pandas series

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

所以如果我有一个看起来像的系列:

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

其中任何单词'完全由字符串开头的数字字符组成的字母已被删除?正如您在上面所看到的,我希望保留3 3RD STREET'以。。开始。我正在思考一个正则表达式,但这超出了我的范围。谢谢!

2 个答案:

答案 0 :(得分:7)

您可以使用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

答案 1 :(得分:1)

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
相关问题