在 python datetime.time 中将 UTC 时间转换为本地时间

Converting UTC time to local in python datetime.time

我的示例数据框是:

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

非常感谢任何帮助。

也许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
>>>