Преобразование пользовательских форматов даты в пандах - PullRequest
0 голосов
/ 28 января 2019

В моем фрейме данных у меня есть несколько форматов дат, которые я хочу изменить в универсальный формат.

1) "12/01/2011 11:25 PM"

2) "Thu, Dec 1 8:15 AM"

3) "Dec.01, 2011 4:00 p.m"

4) "2011 - 12 - 01 10:33 AM"

5) "12/1/2011 12:18PM "

6) "12/1/11 2:06 PM (-05:00)"

7) "2:07 PMDec 01"

8) "12:18 PM, Dec 01"

parse(x) не работает в следующих форматах:

6) "12/1/11 2:06 PM (-05:00)"

7) "2:07 PMDec 01"

Есть ли способ создать аргументы для этих пользовательских форматов даты?

1 Ответ

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

Использование:

import pandas as pd
pd.to_datetime(DateString, format=FormatString)

После кода для ваших примеров:

date_old = '12/01/2011 11:25 PM'
date_new = pd.to_datetime(date_old, format='%d/%m/%Y %I:%M %p')

date_old = 'Dec.01, 2011 4:00 p.m'
date_new = pd.to_datetime(date_old[:-2] + 'm', format='%b.%d, %Y %I:%M %p')

date_old = '2011 - 12 - 01 10:33 AM'
date_new = pd.to_datetime(date_old, format='%Y - %m - %d %I:%M %p')

date_old = '12/1/2011 12:18PM '
date_new = pd.to_datetime(date_old, format='%d/%m/%Y %I:%M%p ')

from datetime import timedelta
date_old = '12/1/11 2:06 PM (-05:00)'
date_new = pd.to_datetime(date_old[:-9], format='%d/%m/%y %I:%M %p') - timedelta(hours=int(date_old[-6:-4]), minutes=int(date_old[-3:-1]))

date_old = '2:07 PMDec 01'
date_new = pd.to_datetime(date_old, format='%I:%M %p%b %d')

date_old = "12:18 PM, Dec 01"
date_new = pd.to_datetime(date_old, format='%I:%M %p, %b %d')

Пожалуйста, обратитесь к https://www.w3schools.com/python/python_datetime.asp для кодов допустимого формата.

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