2016-02-13 48 views
4

可以說我有一個數據幀df作爲從Pandas中的字符串中提取int?

A B 
1 V2 
3 W42 
1 S03 
2 T02 
3 U71 

我想有一個新的列(無論是在它的df年底或用它代替列B,因爲它並不重要),僅提取來自列B的int。這是我想列C看起來像

C 
2 
42 
3 
2 
71 

所以,如果有在號碼前面,如03 0,那麼我想回到3不是03

我該怎麼做?

回答

20

您可以轉換爲字符串並使用正則表達式提取整數。

df['B'].str.extract('(\d+)').astype(int) 
1

假設總有隻有一個首字母

df['B'] = df['B'].str[1:].astype(int) 
0

我寫了一個小環要做到這一點,因爲我沒有我的琴絃的數據幀,但在列表中。這樣一來,你也可以加少許的if語句佔花車:

output= '' 
input = 'whatever.007' 

for letter in input : 
     try : 
      int(letter) 
      output += letter 

     except ValueError : 
       pass 

     if letter == '.' : 
      output += letter 

輸出=浮動(輸出)

,或者你可以INT(輸出)如果你喜歡。