python - 将纪元时间戳列转换为带有时区的日期时间
问题描述
我的 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
有人可以帮我实现这一目标吗?非常感谢!
解决方案
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
推荐阅读
- javascript - 如何使用 JQuery 隐藏没有可见行的表?
- code-organization - 合并拉取请求中的冲突
- java - 更新 MoneyTextView Android Studio
- objective-c - SKVideoNode 不考虑纵横比
- node.js - 如何使用 NodeJS 构建可执行文件
- javascript - 连接元素以形成 jQuery 类选择器时的语法错误
- javascript - 在另一个函数中使用函数回调
- c++ - 不控制派生类的线程安全工厂模式
- android - 如何在flutter中将第三方android库导入java文件
- c# - 将边框添加到仅在聚焦时可见的选择器?