Удаление части текстовой строки из столбца в Python с помощью REGEX - PullRequest
0 голосов
/ 09 мая 2020

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

Я использую Python3, pandas

Пример:

df['sample field'].head(2) 

возвращает

"4294-Skateboard Foundation (MSF) Advanced Rider Course (ARC) , 1134123 , Oct 24 2016 12:00AM ,"
"1254-Skateboard Foundation (MSF) Experienced Rider Courses (ERC/BRC 2) , 3217121 , May 15 2015 12:00AM ,"
"4457-Total Control, Level 1 (Advanced Skateboarding Clinic) (TCL1) , 6743468 , Nov 11 2013 12:00AM ," 

Предполагаемый возврат

"4294-Skateboard Foundation (MSF) Advanced Rider Course (ARC) 1134123"
"1254-Skateboard Foundation (MSF) Experienced Rider Courses (ERC/BRC 2) 3217121"
"4457-Total Control Level 1 (Advanced Skateboarding Clinic) (TCL1) 6743468" 

Я пытаюсь выяснить, как разделить значения даты и времени: на обратной стороне, если текстовые строки в новый столбец: Предполагаемый возврат.

Чтобы сделать обратное, я использовал следующее:

df3_1['Date'] = df3_1['Course ID'].str.extract('([A-Za-z]+\s+\d+\s+\d+\s+\d+:[0-9A-Z]+(?=\s+\,+))')  

Это очень хорошо сработало при удалении даты, но сейчас я пытаюсь выяснить, как сохранить текст без даты.

Ответы [ 2 ]

1 голос
/ 09 мая 2020
df=pd.DataFrame({'Text':['4457-I only, need, this, Nov 11 2013 12:00AM ,',
                 '2359-I only need, this, Apr 11 2013 12:00AM ,']})

#get rid of the date section and merge the rest on whitespace
df['extract'] = df.Text.str.strip(',').str.split(',').str[:-1].str.join(' ')

df
            Text                                           extract
0   4457-I only, need, this, Nov 11 2013 12:00AM ,  4457-I only need this
1   2359-I only need, this, Apr 11 2013 12:00AM ,   2359-I only need this
0 голосов
/ 09 мая 2020

Предполагается, что у вас уже есть столбец даты

df['Course ID'].replace(regex=r'(?i)'+ df.Date,value="")
0    4457-I only, need, this,  
1      2359-I only need, this, 
Name: Course ID, dtype: object
...