2017-08-09 81 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

好極了,感謝安德魯! –

相關問題