当它是时区时检查熊猫日期时间列的数据类型?

rup*_*rup 2 python datetime pandas

我的数据框中有一个时区感知列,当我运行时,dtypes我得到了输出datetime64[ns, pytz.FixedOffset(60)]

我正在编写一个脚本,以确保在将列数据datatime64[ns]添加到我的数据库之前,它确实是类型的。

但是,当我使用以下 if 语句检查列 dtype 时:

df['date'].dtypes != 'datetime64[ns, pytz.FixedOffset(60)]'

我收到以下错误消息: TypeError: Invalid datetime unit in metadata string "[ns, pytz.FixedOffset(60)]"

所以基本上......当列是时区时,我如何确认dtype熊猫数据框中datetime[*]的列是类型?

PS 我的时区是伦敦/UTC。除了parse_datesin read_csv()and之外,我没有对列进行任何额外的格式化/解析: df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%dT%T%z')

有什么我想念的吗?

小智 8

我有一个类似的问题,我是这样解决的:

isinstance(df['col_name'].dtype, pd.core.dtypes.dtypes.DatetimeTZDtype)
Run Code Online (Sandbox Code Playgroud)