熊猫:将秒数转换为时间增量或时间

时间:2018-07-09 14:06:11

标签: python pandas datetime dataframe

我在一个数据帧中有几秒钟的时间,比如:

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'而不是格式,但是然后我得到了时间之前的日期。 如何修改我的代码以获得所需的转换?

如果可能的话,它需要在数据框中使用熊猫来完成。

编辑:下面的jezrael和MedAli解决方案都是有效的,但是Jezrael解决方案的优点是不仅可以使用整数,还可以使用Datetime.time作为输入!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

您可以按以下方式编辑代码以获得所需的结果:

In [10]: df
Out[10]: 
   sec      time
0  110  00:01:50
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

输出:

loadcountries