【发布时间】:2019-04-04 14:52:56
【问题描述】:
我正在尝试将 Unix UTC 时间戳转换为 Pandas 中的本地日期格式。我一直在寻找一些解决方案,但我无法完全理解如何正确地做到这一点。
我有一个包含多个 UTC 时间戳列的数据框,所有这些列都需要转换为本地时区。比如说欧盟/柏林。
我首先通过以下调整将所有时间戳列转换为有效的日期时间列:
df['date'] = pd.to_datetime(df['date'], unit='s')
这有效并给了我以下结果,例如2019-01-18 15:58:25 如果我知道尝试调整此日期时间的时区,我已经尝试了两个:
df['date'].tz_localize('UTC').tz_convert('Europe/Berlin')
和
df['date'].tz_convert('Europe/Berlin')
在这两种情况下,错误都是:TypeError: index is not a valid DatetimeIndex or PeriodIndex,我不明白为什么。
问题一定是 DateTime 列不在索引上。但即使我使用df.set_index('date') 并且在我尝试了上述选项之后它也不起作用并且我得到了同样的错误。
另外,如果可行的话,这个方法似乎只允许对索引的 DateTime 进行时区调整。然后我将如何调整需要调整的其他列?
希望找到一些有关如何最好地一劳永逸地解决这些问题的信息!谢谢
【问题讨论】: