как заменить / удалить даты такого типа с помощью регулярных выражений или их можно использовать как можно лучше? - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть фрейм данных df со значением

df

values

2018-04-22:11:09:35
2018-04-22
2018-apl-22
2018-APR
20-JAN-2018
2018-04-22:11:09
2018-04-22:11
2018/04/22:11:09:35
2018/04/22
2018/apl/22
2018/APR
20/JAN/2018
2018/04/22:11:09
2018/04/22:11
2018 04 22:11:09:35
2018 04 22
2018 apl 22
2018 APR
20 JAN 2018
2018 04 22:11:09
2018 04 22:11

Эти форматы дат должны быть удалены в строке.любой совет?

Я пробовал это:

df['values'].str.replace('\s+[\W\d]+', '')

Большинство из них не заменяют.Принятые выходные данные должны быть:

values

Я хочу, чтобы они были удалены в строке.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Это неструктурированный и огромный.Но это будет работать как шарм

((?:\d{1,2}[- /](?:\d{1,2} | [a-zA-Z]{3})(?:[- /]\d{4})?|\d{4}[- /](?:\d{1,2}|[a-zA-Z]{3})(?:[- /]\d{1,2})?)(?::\d{2}(?::\d{2}){0,4})|\d{2,4}(?:-|/| )\d{1,2}(?:-|/| )\d{1,2}|\d{2,4}(?:-|/| )\w{2,4}(?:-|/| )\w{1,4}|\d{2,4}(?:-|/| )\w{2,4}) 
0 голосов
/ 28 февраля 2019

Это приведет к удалению всего, что начинается как минимум с двух цифр: replace('^\d{2,}.*', '').

Я не уверен, есть ли в вашем файле другие строки, начинающиеся с цифр и которые вы можете оставить какэтот шаблон также удалит их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...