首页 > 解决方案 > 熊猫:将秒数转换为时间增量或时间

问题描述

我在数据框中有几秒钟,比方说:

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 作为输入!

标签: pythonpandasdatetimedataframe

解决方案


使用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

推荐阅读