将时间转换为 pandas 中的 UTC

convert time to UTC in pandas

我有多个csv文件,我设置了DateTime作为索引。

df6.set_index("gmtime", inplace=True)
#correct the underscores in old datetime format
df6.index = [" ".join( str(val).split("_")) for val in df6.index]
df6.index = pd.to_datetime(df6.index)

时间设置为 GMT,但我认为当我将时钟设置为 raspberry pi 时它被保存为 BST(英国夏令时)。 我想将时间倒退一小时。当我使用

df6.tz_convert(pytz.timezone('utc'))

它给出了以下错误,因为它假定时间是正确的。

Cannot convert tz-naive timestamps, use tz_localize to localize

如何将时间调到一小时?

给定包含 date/time 信息作为字符串的列,您将转换为日期时间,本地化为时区(此处:Europe/London),然后转换为 UTC。您可以在设置为索引之前执行此操作。

例如:

import pandas as pd

dti = pd.to_datetime(["2021-09-01"]).tz_localize("Europe/London").tz_convert("UTC")

print(dti) # notice 1 hour shift:
# DatetimeIndex(['2021-08-31 23:00:00+00:00'], dtype='datetime64[ns, UTC]', freq=None)

注意:设置时区意味着考虑夏令时,即在这里,在冬季,您将使用 UTC+0,在夏季使用 UTC+1。