python - 熊猫:将秒数转换为时间增量或时间
问题描述
我在数据框中有几秒钟,比方说:
s = 122
我想将其转换为以下格式:
00:02:02.0000
为此,我尝试通过以下方式使用 to_datetime:
pd.to_datetime(s, format='%H:%M:%S.%f')
然而这不起作用:
ValueError:时间数据 122 与格式 '%H:%M:%S.%f' 不匹配(匹配)
我也尝试使用unit='ms'
而不是格式,但后来我得到了时间之前的日期。如何修改我的代码以获得所需的转换?
如果可能,需要使用 pandas 在数据框中完成。
编辑:下面的 jezrael 和 MedAli 解决方案都是有效的,但是 Jezrael 解决方案的优点是不仅可以使用整数,还可以使用 Datetime.time 作为输入!
解决方案
使用to_timedelta
将秒转换为nanoseconds
:
df = pd.DataFrame({'sec':[122,3,5,7,1,0]})
df['t'] = pd.to_timedelta(df['sec'] * 10**9)
print (df)
sec t
0 122 00:02:02
1 3 00:00:03
2 5 00:00:05
3 7 00:00:07
4 1 00:00:01
5 0 00:00:00
推荐阅读
- swift - 未定义属性列表的平等协议实现?
- c# - 如何在 Asp.net MVC Web 应用程序 C# 中上传文件时显示进度?
- r - 如何在 R 中生成交互式“画面风格”热图,其中两个因素作为轴标签
- extjs - 重新排列 Tinymce 上的按钮
- c++ - lnk1114 无法覆盖原文件“xxx.lib”,错误码32
- javascript - 如何使用 Auth0 在 React Native 中创建静默身份验证?
- virtualbox - 在 VirtualBox 中使用嵌入式 Linux 映像
- css - 如何分别为文本和图像实现不同的动画?
- javascript - chrome 扩展在安装时说 CRX_REQUIRED_PROOF_MISSING
- python - Python requests put request to shopify api 总是报错