Получение 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, который я хочу. Но мне все еще хотелось бы более общее решение, чтобы мне не приходилось делать этот хак везде, я делаю фрейм-запросы с обнуляемыми результатами даты и времени.