繁体   English   中英

获取 pandas dataframe 中的所有列,当不同列中存在不同时区时,该列是日期列

[英]Get all columns in a pandas dataframe that is a date-column when different time-zones are present in different columns

(注意, 这个SO 问题没有考虑到不同的时区,即它没有捕捉到存在时区的日期)。

我有一个 dataframe ,其中一些列 dtypes 是datetime64[ns] ,有些是datetime64[ns,UTC]

请注意,它们都已使用

df["some_time_col"] = pd.to_datetime(df["some_time_col"])但由于df是跨不同数据库的数据合并,因此时区不同。

有没有办法让所有列都是日期列,即像这样

dt_cols = df.select_dtypes(include=[pd.datetime]).columns

而不必指定所有时区,如

dt_cols = df.select_dtypes(include=["datetim64","datetime64[UTC]","datetime64[UTC+1]"...).columns

使用任何一个

dt_cols = df.select_dtypes(include=[np.datetime64]).columns
dt_cols = df.select_dtypes(include=["datetime64"]).columns

不捕捉datetime64[ns,UTC]但只捕捉 datetime64 datetime64[ns]

利用:

df.select_dtypes('datetimetz')

select_dtypes文档:

对于 select Pandas datetimetz dtypes,使用 'datetimetz'(0.20.0 中的新功能)或 'datetime64[ns, tz]'

要选择不带 tz 和带 tz 的datetime时间,请执行以下操作:

df.select_dtypes(['datetimetz', 'np.datetime64'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM