2017-02-22 7 views
3

Я пытаюсь преобразовать массив секунд-Since-эпохи значений, в том числе микросекунды точности, в формате Datetime используя панд to_datetime, как показано ниже:Преобразовать секунды DATETIME, не опуская точность микросекунд, используя панд to_datetime

x = 1487187300.038075 
time = pd.to_datetime(x, unit='s') 

Это успешно превращается в Timestamp, но точность микросекунд отбрасывается (или по крайней мере не видно), производство:

Timestamp('2017-02-15 19:35:00') 

Любые советы о том, как преобразовать без потери точности? Ни один из моих поисков до сих пор не показывает примеры, в которых OP заботился о поддержании точности микросекунд.

+0

try 'print (time.microsecond)' –

+0

Возвращает ноль! Спасибо за предложение! – CrashLandon

+0

Какую версию панд вы используете? '0.19.2' сохраняет микросекунды в моем тестировании вашего примера. –

ответ

1

Я думаю, что нашел основную причину и временное обходное решение. В pandas 0.19.1 была зафиксирована проблема, в которой усекались поплавки.

https://github.com/pandas-dev/pandas/issues/13834

Для устранения этой проблемы использовать «ошибки =„принуждать“» arguement:

x = 1487187300.038075 
time = pd.to_datetime(x, unit='s', errors='coerce') 

time 
Out[43]: 
Timestamp('2017-02-15 19:35:00.038075') 

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

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