Python 当datetime列为时区时,是否检查其数据类型?
我的数据帧中有一个时区感知列,当我运行Python 当datetime列为时区时,是否检查其数据类型?,python,pandas,datetime,Python,Pandas,Datetime,我的数据帧中有一个时区感知列,当我运行dtypes时,我会得到输出datetime64[ns,pytz.FixedOffset(60)] 我正在编写一个脚本,以确保在将列数据添加到数据库之前,列数据的类型肯定是datatime64[ns] 但是,当我使用以下if语句检查列数据类型时: df['date'].dtypes!='datetime64[ns,pytz.FixedOffset(60)]” 我收到以下错误消息: TypeError:元数据字符串“[ns,pytz.FixedOffset(6
dtypes
时,我会得到输出datetime64[ns,pytz.FixedOffset(60)]
我正在编写一个脚本,以确保在将列数据添加到数据库之前,列数据的类型肯定是datatime64[ns]
但是,当我使用以下if语句检查列数据类型时:
df['date'].dtypes!='datetime64[ns,pytz.FixedOffset(60)]”
我收到以下错误消息:
TypeError:元数据字符串“[ns,pytz.FixedOffset(60)]”中的日期时间单位无效。
所以基本上。。。当数据帧中的dtype
列具有时区意识时,如何确认该列的类型为datetime[*]
我的时区是伦敦/UTC。除了read\u csv()
中的parse\u dates
和:
df['date']=pd.to_datetime(df['date'],格式='%Y-%m-%dT%T%z')
我缺少什么吗?df['date']。数据类型是一个对象。您应该能够对其进行str()操作,然后比较:
str(df['date'].dtypes) != 'datetime64[ns, pytz.FixedOffset(60)]'
df['date']。数据类型是一个对象。您应该能够对其进行str()操作,然后比较:
str(df['date'].dtypes) != 'datetime64[ns, pytz.FixedOffset(60)]'
我有一个类似的问题,我这样解决:
isinstance(df['col_name'].dtype, pd.core.dtypes.dtypes.DatetimeTZDtype)
我有一个类似的问题,我这样解决:
isinstance(df['col_name'].dtype, pd.core.dtypes.dtypes.DatetimeTZDtype)
我想这就是我要走的路。我正在使用一个自定义的模式验证器,我的设置如下:```对于目标列中的列:如果不是df[column],那么type\u targets=schema\u definition[column][0]。对于检查日期时间列,这是一个笨拙的故障切换,但是如果type_中的pd.DatetimeTZDtype是targets,并且是instance(df[column].dtype,pd.DatetimeTZDtype):continue``我想这就是方法。我正在使用一个自定义的模式验证器,我的设置如下:```对于目标列中的列:如果不是df[column],那么type\u targets=schema\u definition[column][0]。对于检查日期时间列,这是一个笨拙的故障切换,但是,如果类型_中的pd.DatetimeTZDtype是目标并且是实例(df[column].dtype,pd.DatetimeTZDtype):continue,则它可以工作```