Mam ramę danych DF wartości

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

Te formaty daty powinny zostać usunięte w ciągu. jakakolwiek rada?

Próbowałem tego:

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

Większość z nich nie zastępuje. Akceptowane wyjście powinno być:

values

Chcę, żeby zostali usunięci w łańcuchu.

0
user11124889 28 luty 2019, 13:59

2 odpowiedzi

Najlepsza odpowiedź

Jest to nieustrukturyzowane i ogromne. Ale to będzie działać jak urok

((?:\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}) 
1
艾瑪艾瑪艾瑪 28 luty 2019, 11:45

Usunąłoby to wszystko, co zaczyna się od co najmniej dwóch cyfr: replace('^\d{2,}.*', '').

Nie jestem pewien, czy w pliku znajdują się inne linie, które zaczynają się od cyfr i że możesz zachować, ponieważ ten wzór ich usunie.

0
Saichovsky 28 luty 2019, 11:22