2017-08-09 63 views
1

我有一系列的地址,想要一个只有街道名称的系列。唯一的解决办法是有些地址没有门牌号码,有些是。熊猫 - 从系列字符串的开始处移除数字

所以,如果我有一系列的样子:

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。我在想一个正则表达式,但这超出了我。谢谢!

回答

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

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 
+0

好极了,感谢安德鲁! –

相关问题