Регулярное выражение для разделения строки фрейма данных на столбцы в Python - PullRequest
1 голос
/ 13 апреля 2019

Я новичок в регулярных выражениях. Я должен разбить строку dataframe на 3 столбца на основе шаблона с помощью регулярного выражения.

Пример строки во фрейме данных:

"Sample String(just a / string) 04/04/2014 to ongoing"

Я пробую ниже регулярного выражения, но не работаю:

pat = re.compile("(?P<String_Name>[a-zA-Z- )(/ ]*)(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})(?P<stop_date>[a-zA-Z]*)?")
df=new_df.text.str.extract(pat)

Нужен вывод как это:

String_Name = Sample String(just a / string)
Start_Date = 04/04/2014
Stop_Date = ongoing

1 Ответ

0 голосов
/ 13 апреля 2019

Вы можете использовать

r'(?P<String_Name>.*?)\s*(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})\sto\s+(?P<stop_date>.*)'

См. Демоверсию regex . Регулексный график:

enter image description here

Тест Панд:

df = pd.DataFrame({'text':['Sample String(just a / string) 04/04/2014 to ongoing']})
rx = r'(?P<String_Name>.*?)\s*(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})\sto\s+(?P<stop_date>.*)'
df1 = df['text'].str.extract(rx)

Выход:

>>> df1
                      String_Name  START_DATE stop_date
0  Sample String(just a / string)  04/04/2014   ongoing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...