当不同的时区出现在不同的列中时,获取作为日期列的 pandas 数据框中的所有列
Get all columns in a pandas dataframe that is a date-column when different time-zones are present in different columns
(注意, SO 问题没有考虑不同的时区,即当存在时区时它不会捕获日期)。
我有一个数据框,其中一些列 dtype 是 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[ns]
使用:
df.select_dtypes('datetimetz')
来自 select_dtypes
文档:
To select Pandas datetimetz dtypes, use 'datetimetz' (new in 0.20.0) or 'datetime64[ns, tz]'
要同时选择 datetime
不带 tz 和带 tz,请执行:
df.select_dtypes(['datetimetz', 'np.datetime64'])
(注意,
我有一个数据框,其中一些列 dtype 是 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[ns]
使用:
df.select_dtypes('datetimetz')
来自 select_dtypes
文档:
To select Pandas datetimetz dtypes, use 'datetimetz' (new in 0.20.0) or 'datetime64[ns, tz]'
要同时选择 datetime
不带 tz 和带 tz,请执行:
df.select_dtypes(['datetimetz', 'np.datetime64'])