python-3.x - 将 UNIX 时间从纳秒转换为秒
问题描述
我正在以纳秒格式的 UNIX 时间服务中的字符串形式读取时间戳。这引入了一个明显的问题,因为考虑到字符串的大小,我无法执行标准操作将字符串标准化为秒。这些字符串之一的示例是'1589212802642680000'
科学记数法中的或 1.58921E+18。
我正在尝试这样的事情:convert_fills_df['timeStamp'] = convert_fills_df.timeStamp.apply(lambda x: UNIX_EPOCH + (float(x)/1000000000))
。但是当我尝试这个时,我溢出了浮动对象;有没有我可以做的字符串操作而不会丢失精确到秒?就我的目的而言,纳秒是不必要的(尽管我很欣赏它们的彻底性)。如果我能保持纳秒级也很好,但这不是必需的。
我只想将时间转换为 24 小时制格式的人类可读格式。
解决方案
前 10 位数字代表秒,后面的数字代表毫秒、微秒和纳秒精度
要保留您可以.
在正确位置插入的所有信息,并将字符串传递给 pd.to_datetime
df = pd.DataFrame({'ns': ['1589212802642680000']})
pd.to_datetime(df.ns.str[:10] + '.' + df.ns.str[10:], unit='s')
# outputs
0 2020-05-11 16:00:02.642679930
Name: ns, dtype: datetime64[ns]
推荐阅读
- python - 循环以便为 Excel 文件中的每个工作表创建多个 DataFrame
- google-cloud-platform - GCP 只为一位用户分配一个实例的访问权限
- bash - 在包含逗号的字段的 bash 中创建 CSV
- python - 按名称从一个工作区移动到其他工作区窗口
- django - 带有参数的 Django Rest Framework GET 请求
- java - 在自定义测试任务定义中使用 Gradle 测试重试插件
- flutter - Appbar 隐藏/显示类似 iOS 风格
- python - 搜索和替换计算出的数值
- amazon-web-services - 无法在 AWS Athena 中查询视图
- oracle - Oracle Apex - 基于返回 URL 的 PL/SQL 函数体分支到另一个页面