Python 熊猫:将秒数转换为时间增量或时间
我在一个数据帧中有一定的秒数,比如说:Python 熊猫:将秒数转换为时间增量或时间,python,pandas,datetime,dataframe,Python,Pandas,Datetime,Dataframe,我在一个数据帧中有一定的秒数,比如说: s = 122 我想将其转换为以下格式: 00:02:02.0000 为此,我尝试通过以下方式使用日期时间: pd.to_datetime(s, format='%H:%M:%S.%f') 但是,这不起作用: ValueError:时间数据122与格式“%H:%M:%S.%f”不匹配(匹配) 我还尝试使用unit='ms'而不是格式,但是我得到的日期早于时间。 如何修改代码以获得所需的转换 如果可能的话,需要在数据帧中使用pandas 编辑:下面的
s = 122
我想将其转换为以下格式:
00:02:02.0000
为此,我尝试通过以下方式使用日期时间:
pd.to_datetime(s, format='%H:%M:%S.%f')
但是,这不起作用:
ValueError:时间数据122与格式“%H:%M:%S.%f”不匹配(匹配)
我还尝试使用unit='ms'
而不是格式,但是我得到的日期早于时间。
如何修改代码以获得所需的转换
如果可能的话,需要在数据帧中使用pandas
编辑:下面的jezrael和MedAli解决方案都是有效的,但是jezrael解决方案的优点是不仅可以使用整数,还可以使用Datetime.time作为输入 与将秒转换为纳秒一起使用:
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
您可以按如下方式编辑代码以获得所需的结果:
df = pd.DataFrame({'sec':[122,3,5,7,1,0]})
df['time'] = pd.to_datetime(df.sec, unit="s").dt.time
输出:
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
我建议使用
timedelta
-datetime.timedelta(seconds=s)
这不是重复的,因为我试图使用Pandas函数实现这一点,而不是使用标准库中的字符串日期。谢谢,但这对整个数据帧有效吗?太好了!正是我缺少的功能!多亏了lotYes,timedelta
s和time
s之间的优势在于本地支持