使用时区将纪元时间戳列转换为datetime

问题描述 投票:0回答:1

我的Jupyter笔记本中有一个带有一列纪元时间戳的数据框,它看起来像这样:

 Name    stop      ts            remark
 A       01        1546470653    -
 B       032       1546470969    Not listed
 C       022       1546471069    Not listed
 D       045       1546471238    Not listed

我要做的是将时区时间戳转换为人类可读的日期和时间区域(utc + 8),结果应如下所示:

 Name    stop      ts            remark       timestamp
 A       01        1546470653    -            2019-01-03T07:10:53+08:00
 B       032       1546470969    Not listed   2019-01-03T07:16:09+08:00
 C       022       1546471069    Not listed   2019-01-03T07:17:49+08:00
 D       045       1546471238    Not listed   2019-01-03T07:20:38+08:00

有人可以帮我实现吗?非常感谢!

python pandas datetime timestamp epoch
1个回答
3
投票

使用pd.to_datetimeunit='s'。然后,您可以使用tz_*方法设置时区。

df['timestamp'] = (pd.to_datetime(df['ts'], unit='s')
                     .dt.tz_localize('utc')
                     .dt.tz_convert('Asia/Hong_Kong'))    
df

  Name  stop          ts      remark                 timestamp
0    A     1  1546470653           - 2019-01-03 07:10:53+08:00
1    B    32  1546470969  Not listed 2019-01-03 07:16:09+08:00
2    C    22  1546471069  Not listed 2019-01-03 07:17:49+08:00
3    D    45  1546471238  Not listed 2019-01-03 07:20:38+08:00
© www.soinside.com 2019 - 2024. All rights reserved.