【发布时间】:2021-06-25 12:34:14
【问题描述】:
我有一个包含 3 列的数据框。数据框是从 Postgres 表创建的。
请问如何进行从 timestamptz 到 timestamp 的转换?
我做到了
df['StartTime'] = df["StartTime"].apply(lambda x: x.tz_localize(None))
StartTime 中的数据示例:
2013-09-27 14:19:46.825000+02:00
2014-02-07 10:52:25.392000+01:00
谢谢,
【问题讨论】:
-
谢谢!我想像这样存储数据:2013-09-27 14:19:46, 2014-02-07 10:52:25 @MrFuppes
-
啊,对了,既然您混合了 UTC 偏移量,您需要在尝试时应用
lambda。但是将 tzinfo 替换为 None 因为混合偏移意味着您正在处理日期时间对象 --> 使用pd.to_datetime(df["StartTime"]).apply(lambda t: t.replace(tzinfo=None)) -
@MrFuppes 谢谢我收到此错误 **E ValueError: Tz-aware datetime.datetime cannot be convert to datetime64 unless utc=True **
-
好的,如果 df 中的 Series 已经是 dtype datetime,只需使用
df["StartTime"].apply(lambda t: t.replace(tzinfo=None))
标签: python pandas datetime timestamp