Получение SQL Server DateTime NULL в пандах

У меня есть таблица в SQL Server, которая содержит, помимо прочего, DateTime колонка From_UTC и DateTime NULL колонка To_UTC, Я пытаюсь прочитать это в панд DataFrame,

Столбец, отличный от NULL, входит в datetime64, но другой получает тип данных Object,

import pandas.io.sql as psql
import adodbapi
conn = adodbapi.connect(...)
df = psql.read_frame("SELECT Unit, To_UTC, From_UTC, CategoryID FROM T_Alarm WHERE ...", con=conn)
df.dtypes

Unit                  object
To_UTC                object
From_UTC      datetime64[ns]
CategoryID             int64
dtype: object

df.To_UTC[0]
==> pywintypes.datetime(2011, 9, 6, 13, 51, 56)

Если я включу WHERE To_UTC IS NOT NULL в моем запросе все отлично работает.

Я предполагаю, что комбинация adodbapi, объектов pywintypes.datetime и NULL в результате предотвращает приведение панд к нужному типу?

Я старался df.convert_objects(), но это не помогло.

ОБНОВЛЕНИЕ:

Если я сделаю df.To_UTC = pandas.Series(df.To_UTC, dtype='datetime64[ns]')тогда я получаю DataFrame, который я хочу. Но мне все еще хотелось бы более общее решение, чтобы мне не приходилось делать этот хак везде, я делаю фрейм-запросы с обнуляемыми результатами даты и времени.

0 ответов

Другие вопросы по тегам