我正在尝试将Unix UTC时间戳转换为Pandas中的本地日期格式。我一直在寻找一些解决方案,但我不太了解如何正确执行此操作。
我有一个带有多个UTC时间戳列的数据框,所有这些列都需要转换为本地时区。比方说欧盟/柏林。
我首先将所有timestamp列转换为有效的datetime列,并进行以下调整:
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进行时区调整。然后我该如何调整其他需要调整的列?
希望找到有关如何一劳永逸地解决这些问题的信息!谢谢
答案 0 :(得分:1)
您首先应通过将.dt.
添加到非索引中来指定它为日期时间
df['date'] = df['date'].dt.tz_localize('UTC').dt.tz_convert('Europe/Berlin')
如果该列不是索引列,则应使用它。