0

SQL Server に、とりわけDateTimecolumnFrom_UTCDateTime NULLcolumnを含むテーブルがありますTo_UTC。pandas に読み込もうとしますDataFrame

NULL 以外の列は として問題datetime64ありませんが、もう一方は datatype を取得し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クエリにa を含めると、すべて正常に動作します。

adodbapi、pywintypes.datetime オブジェクト、および結果の NULL の組み合わせにより、パンダが正しい型に強制されるのを防いでいると思いますか?

試してみdf.convert_objects()ましたが、役に立ちませんでした。

更新

そうすればdf.To_UTC = pandas.Series(df.To_UTC, dtype='datetime64[ns]') 、必要な DataFrame を取得できます。しかし、null 可能な日時の結果でフレーム クエリを実行するすべての場所でこのハックを行う必要がないように、より一般的なソリューションが必要です。

4

0 に答える 0