2016-08-15 2 views
0

Я искал часы, и это должно быть просто. Я пытаюсь извлечь все буквы из строки со смесью или цифрами и буквами. Вот пример:Python pandas extract, как извлечь оставшуюся часть строки

df = pd.Series(['ENGLANDSR11SW']) 
df = df.to_frame('column') 
df['ValueAfterExtract'] = df['column'].str.extract("(?P<letter>[a-zA-Z]+)") 
print(df) 

Из значения ENGLANDSR11SW строки в dataframe, результат ENGLANDSR, но я хочу, чтобы принести даже последние буквы строки, которая является SW, которая должна привести к ENGLANDSRSW, а это означает только цифры 11 будут удалены.

Как я могу это сделать?

ответ

3

Заменить все цифры (\d) с пустыми строками:

In [6]: df['column'].str.replace(r'\d', '') 
Out[10]: 
0 ENGLANDSRSW 
Name: column, dtype: object 

Или, чтобы удалить все, что не находится в [a-zA-Z] использовать регулярное выражение [^a-zA-Z]. Это приведет к удалению, например, пробелов и знаков препинания, а также цифр:

In [20]: df['column'].str.replace(r'[^a-zA-Z]', '') 
Out[20]: 
0 ENGLANDSRSW 
Name: column, dtype: object 
+0

Огромное спасибо большое @unutbu – Jeff

Смежные вопросы