我在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
有人可以帮助我实现这一目标吗?非常感谢!
答案 0 :(得分:3)
将pd.to_datetime
与unit='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