【发布时间】:2020-11-27 13:17:05
【问题描述】:
我有一列 timestamps 包含时区信息。它是通过数据库中的 SQL 查询导入的。它的数据类型为datetimeoffset(7)
2020-06-04 13:00:00.0000000 +02:00
如何将其转换为考虑tz 信息的天真日期,例如。
2020-06-04 15:00:00
请注意,+ 02:00 部分已添加到 timestamp,而不是简单地删除。
timestamps 存储在 pandas dataframe 中。
【问题讨论】:
-
注意:从技术上讲,第一次考虑时区,第二次没有,它只是一个“挂钟”,没有人知道时区。你使用的时区不正确:你应该 substract 时区偏移量(或 UTC 时间 + 偏移量 = 本地时间)。pandas 应该能够处理时区(实际上时间以相同的 UTC 格式存储,并且附加字段具有 +2,以防万一你让 pandas 打印时间。
-
我假设“时间戳”是 pd.DataFrame(即 pd.Series)中的一列?它是什么类型的?我假设对象(字符串) - 正是这种格式
'07-08-2020 08:00:00 + 02:00'? -
是的,'TimeStamp' 是 pandas df 中的列/系列。该表是通过 SQL 查询从具有数据类型 datetimeoffset(7) 的数据库中导入的。
-
好的,看来您可以从我的回答中省略
df['timestamp'] = df['timestamp'].str.replace(r'(\+|\-)\ ', r'\1')行;-)
标签: python pandas datetime timezone