df['first_timestamp'] = pd.to_datetime(df['first_timestamp']).dt.tz_localize('US/Central', ambiguous='infer')
df['second_timestamp'] = pd.to_datetime(df['second_timestamp']).dt.tz_localize('US/Central', ambiguous='infer')
AmbiguousTimeError:2014-11-02 01:02:14
这些时间戳来自csv文件,该文件不包含时区。我想在加载到我的数据库之前添加时区,如果可能的话。有没有我做错的代码含糊不清的部分?我仍然收到错误。
答案 0 :(得分:4)
此日期时间在中央时间存在两次,例如见here:
2014年11月2日 - 夏令时结束
当地日光时间即将到达时 2014年11月2日星期日凌晨2:00:00时钟倒转1小时到 2014年11月2日星期日,当地标准时间凌晨1:00:00 2014年11月2日的日出和日落比前一天早1小时左右。早上有更多的光线。
如果这些实际上是UTC,您应该从UTC本地化:
In [11]: pd.Series([pd.Timestamp("2014-11-02 01:02:14 UTC")]).dt.tz_convert('US/Central')
Out[11]:
0 2014-11-01 20:02:14-05:00
dtype: datetime64[ns, US/Central]
或将True传递给不明确的标志(而不是'infer'
)以选择一个:
In [12]: pd.Series([pd.Timestamp("2014-11-02 01:02:14")]).dt.tz_localize('US/Central', ambiguous=True)
Out[12]:
0 2014-11-02 01:02:14-05:00
dtype: datetime64[ns, US/Central]