我有多个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'))
它给我下面的错误,因为它假设时间是正确的。
无法转换tz-naive时间戳,请使用tz_localize进行本地化
我怎样才能把时间调到一个小时?
2条答案
按热度按时间icnyk63a1#
给定一个包含字符串形式的日期/时间信息的列,您可以将其转换为日期时间,本地化为时区(此处为:欧洲/伦敦),然后转换为UTC。您可以在设置为索引之前进行此操作。
例如:
注意:设置 * 时区 * 意味着考虑夏令时,即在这里,在冬季您将使用UTC+0,在夏季使用UTC+1。
jdzmm42g2#
要添加到FObersteiner的回复中(抱歉,新用户,还不能对答案发表评论):
我注意到,在我遇到的所有真实的情况中(使用完整的 Dataframe 或Pandas系列,而不是单个日期),.tz_localize()和.tz_convert()的调用方式需要略有不同。
对我有效的是
如果没有.dt,我会得到“索引不是有效的日期时间索引或周期索引”。