Преобразование даты и времени из ошибки форматирования импорта CSV - PullRequest
1 голос
/ 23 мая 2019

Я импортировал файл CSV, используя read_csv.Необработанные данные в столбце CSV, который меня интересует, записывают дату в следующем формате:

19/01/2012  9:00:00 AM

Однако, когда данные импортируются, они отображаются как:

2005-03-21 10:30:00

Не уверен, почему это происходит.В конечном итоге меня интересует извлечение даты (19/01/2012) и ее использование для расчета количества дней, отличных от самой ранней даты в столбце.Что-то вроде ...

df['date_column'] = (df['date_column'] - df['date_column'].min())

Я попробовал пару вещей, во-первых:

df['date_column'] = pd.to_datetime(df['date_column'], dayfirst=True)

Это возвращает тот же формат даты, как показано выше.А именно 2005-03-21 10:30:00

Вторая попытка была попытаться

df['date_column'] = pd.to_datetime(df['date_column'], format ='%d-%m-%y %I:%M:%S %p')

Это дало мне ошибку

ValueError: time data '2004-03-16 11:40:00 'не соответствует формату'% d-% m-% y% I:% M:% S% p '(соответствует)

Я пробовал несколько незначительных изменений ввыше.Я использую Jupyter v 5.7.4 под управлением Python 3.7.1

Конечно, буду признателен за любой совет / помощь!Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Я думаю, что разница в днях может быть рассчитана, только если вы конвертируете дату в день:

import datetime as dt

df['date_column'] = (df['date_column'] - df['date_column'].min()).dt.days
0 голосов
/ 23 мая 2019

Я думаю, что read_csv - это date_column столбец, уже преобразованный в datetime, поэтому преобразование в даты не требуется.

Если вычитать минимальные значения, получаются timedeltas в другом формате:

rng = pd.date_range('2017-04-03 15:12:10', periods=10, freq='23Min')
df = pd.DataFrame({'date_column': rng})  

df['diff'] = (df['date_column'] - df['date_column'].min())

А если вам нужно указать дату и время в исходном формате, используйте Series.dt.strftime:

df['date_1'] = df['date_column'].dt.strftime('%d/%m/%Y %H:%M:%S %p')
print (df)
          date_column     diff                  date_1
0 2017-04-03 15:12:10 00:00:00  03/04/2017 15:12:10 PM
1 2017-04-03 15:35:10 00:23:00  03/04/2017 15:35:10 PM
2 2017-04-03 15:58:10 00:46:00  03/04/2017 15:58:10 PM
3 2017-04-03 16:21:10 01:09:00  03/04/2017 16:21:10 PM
4 2017-04-03 16:44:10 01:32:00  03/04/2017 16:44:10 PM
5 2017-04-03 17:07:10 01:55:00  03/04/2017 17:07:10 PM
6 2017-04-03 17:30:10 02:18:00  03/04/2017 17:30:10 PM
7 2017-04-03 17:53:10 02:41:00  03/04/2017 17:53:10 PM
8 2017-04-03 18:16:10 03:04:00  03/04/2017 18:16:10 PM
9 2017-04-03 18:39:10 03:27:00  03/04/2017 18:39:10 PM
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...