【发布时间】:2019-02-27 06:46:19
【问题描述】:
我创建了一个每小时的日期数据框,现在我想创建一个列来标记每一行(小时)是否处于夏令时。例如,在夏季时间,标志应该 == 1,而在冬季时间,标志应该 == 0。
# Localized dates dataframe
dates = pd.DataFrame(data=pd.date_range('2018-1-1', '2019-1-1', freq='h', tz='America/Denver'), columns=['date_time'])
# My failed attempt to create the flag column
dates['dst_flag'] = np.where(dates['date_time'].dt.daylight_saving_time == True, 1, 0)
【问题讨论】:
-
这可能必须是手动的。提取边界日期并执行一些条件测试。相关:get the DST boundaries of a given timezone in python.
-
似乎是 XY 问题。你真的关心夏令时,还是关心时区之间的时间转换?如果是后者,请在 internally 使用 UTC 并在 output 时转换为本地时区。
-
@MattMessersmith,我关心确定 DST 时间,因为我将它用作回归中的虚拟变量。它会影响电力消耗模式,因为消耗取决于日光。
-
哦,好吧,有趣!那么这不是 XY 问题。感谢您的澄清,只是想确定一下。
标签: python python-3.x pandas pytz