【问题标题】:Converting UTC time to local in python datetime.time [closed]在python datetime.time中将UTC时间转换为本地时间[关闭]
【发布时间】:2021-08-30 13:56:38
【问题描述】:

我的示例数据框是:

df = pd.DataFrame({'time':['00:00:00','03:00:00','06:00:00','09:00:00','12:00:00'],
              'value':[850,np.nan,500,650,780]})

这里的时间是UTC,我想将时间转换为当地时间,这样:

Local time = UTC + 5:15

任何帮助将不胜感激。

【问题讨论】:

  • 建议您搜索“Python 时区转换”,不要尝试手动编写代码,找到处理它的库。时区转换很难正确。
  • 这能回答你的问题吗? pandas time shift from utc to local

标签: python pandas time-series utc


【解决方案1】:

也许是datetime.timedelta

>>> import pandas as pd
>>> import numpy as np
>>> from datetime import timedelta
>>> df = pd.DataFrame({'time':['00:00:00','03:00:00','06:00:00','09:00:00','12:00:00'],
...               'value':[850,np.nan,500,650,780]})
>>> df
       time  value
0  00:00:00  850.0
1  03:00:00    NaN
2  06:00:00  500.0
3  09:00:00  650.0
4  12:00:00  780.0
>>> df['time'] = df['time'].astype('datetime64')
>>> df
                 time  value
0 2021-06-14 00:00:00  850.0
1 2021-06-14 03:00:00    NaN
2 2021-06-14 06:00:00  500.0
3 2021-06-14 09:00:00  650.0
4 2021-06-14 12:00:00  780.0
>>> d = timedelta(hours=5, minutes=15)
>>> print(d)
5:15:00
>>> df['time'] = df['time'].apply(lambda v: v+d)
>>> df
                 time  value
0 2021-06-14 05:15:00  850.0
1 2021-06-14 08:15:00    NaN
2 2021-06-14 11:15:00  500.0
3 2021-06-14 14:15:00  650.0
4 2021-06-14 17:15:00  780.0
>>> df['time'] = df['time'].apply(lambda v: v.strftime('%H:%M:%S'))
>>> df
       time  value
0  05:15:00  850.0
1  08:15:00    NaN
2  11:15:00  500.0
3  14:15:00  650.0
4  17:15:00  780.0
>>>

【讨论】:

  • 非常感谢@贾斯汀。解决了我的问题。
猜你喜欢
  • 2018-07-27
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 2020-01-11
  • 2014-07-18
  • 2021-02-04
  • 2010-09-15
相关资源
最近更新 更多