2016-06-22 3 views
1

Я пытаюсь извлечь все уникальные значения в столбце даты. В этом случае есть только одно значение, поэтому легко увидеть ошибку.pd.to_datetime() возвращает неверную дату

код, я использую, чтобы увидеть это:

print df['Date'].unique() 
print pd.to_datetime(df['Date'], format = "%Y-%m-%d").unique()) 

Два результата я получаю являются

['2016-06-01'] 

для первой линии и

['2016-05-31T20:00:00.000000000-0400'] 

для вторая строка. Есть ли способ исправить это?

Edit:

Для комментария EdChum в.

Код:

import pandas as pd 
from datetime import datetime, timedelta 

archive = pd.read_csv(r'J:\xxxx\xxxx\Archive.csv') 
date_list = archive['Date'].unique() 
date_list_test = pd.to_datetime(archive['Date'], format = "%Y-%m-%d").unique() 

print date_list 
print date_list_test 

enter image description here

+2

Вы можете разместить исходные данные и код для воспроизведения выше, похоже, как-то ваш часовой пояс представляет смещение, которое является нечетным – EdChum

+0

Эй @EdChum я разместил код в вопрос. Для необработанных данных вы меня просто набираете, как это выглядит? Я не думаю, что могу загрузить фактический csv здесь – FortuneFaded

+0

Можете ли вы разместить достаточно строк вашего csv, который воспроизводит ошибку? – EdChum

ответ

1

Это просто вопрос с тем, как numpy отображает даты - в версии 1.11 он уходит.

In [55]: np.__version__ 
Out[55]: '1.10.4' 

In [56]: pd.to_datetime(['2015-05-31']) 
Out[56]: DatetimeIndex(['2015-05-31'], dtype='datetime64[ns]', freq=None) 

In [57]: pd.to_datetime(['2015-05-31']).values 
Out[57]: array(['2015-05-30T19:00:00.000000000-0500'], dtype='datetime64[ns]') 

In [58]: pd.Series(pd.to_datetime(['2015-05-31']).values) 
Out[58]: 
0 2015-05-31 
dtype: datetime64[ns] 

NumPy 1,11

In [94]: np.__version__ 
Out[94]: '1.11.0' 

In [96]: pd.to_datetime(['2015-05-31']) 
Out[96]: DatetimeIndex(['2015-05-31'], dtype='datetime64[ns]', freq=None) 

In [97]: pd.to_datetime(['2015-05-31']).values 
Out[97]: array(['2015-05-31T00:00:00.000000000'], dtype='datetime64[ns]') 
+0

Эй, @chrisb будет ли это исправлять неверную дату? Я не просто смотрю на изменение форматирования. Pd.to_datetime() возвращает 5/31/16 вместо 6/1/16 по какой-то причине – FortuneFaded

+0

Это должно быть проблемой отображения - см. [Здесь] (https://github.com/numpy/numpy/pull/6453) для получения дополнительной информации. Попробуйте обернуть ваши результаты (которые представляют собой простой массив «numpy') в« Серии », и он должен показать правильную дату? – chrisb

+0

Извините за задержку, я пытаюсь установить numpy и получить странную ошибку. Я должен установить вручную из-за корпоративной интрасети. Когда я запускаю setup.py, я получаю SystemError: одна из требуемой функции для создания numpy недоступна (список - ['sin', 'cos', 'tan', 'sinh', 'cosh' и куча более – FortuneFaded

Смежные вопросы