Регулярные выражения в кадре данных Python - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь извлечь имя из фрейма данных.

df.['target_name'].head()

3                             Minnie
4     Albert [unclear]Gles[/unclear]
5      Eliza [unclear]Gles[/unclear]
6                      John Slaltery
7     [unclear]P.[/unclear] Slaltery
23     ? Stewart
34                     John Maddison
35                     Herbert Olney
36                   William Iverach
37               [unclear][/unclear]
38                  Peter Blacksmith
39                    William Oliver
40                             Emily
Name: target_name, dtype: object

Это вывод. Мы просто хотим избавиться от ненужных персонажей и получить имя. Вот что я сделал:

import re
df['target_name'] = df['target_name'].astype(str) #converting it into a string. 

Я пытался использовать эти два метода, но оба дали мне один и тот же вывод, то есть Nan

df['target_name'] = df['target_name'].str.extract('([a-zA-Z ]+)', expand=False).str.strip()
df['target_name3'] = df['target_name'].str.replace(r'\([^)]*\)', '').str.strip()

1 Ответ

0 голосов
/ 22 января 2020

Кажется, это работает для меня.

import pandas as pd
import re
target_name = ["Minnie", "Albert [unclear]Gles[/unclear]", 
               "Eliza [unclear]Gles[/unclear]", 
               "[unclear]P.[/unclear] Slaltery",  "? Stewart"]
df = pd.DataFrame(target_name, columns = ['target_name'])
df['target_name'] = df['target_name'].astype('str').str.replace(r'\/|\?','').str.replace('\[[a-z]+\]','').str.strip()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...