Pandas:当一些分钟大于60时,我如何将一列以分钟为单位的持续时间:秒转换为日期时间



我有一个数据帧列,其中包含以分钟:秒为单位的视频持续时间。不幸的是,有些行的格式不正确,其中分钟数大于60(例如94:36(。当我尝试使用格式字符串%M:%S运行pd.to_datetime时,它会给我一个错误,说前面提到的时间格式不正确。

如何解决此问题,使所有行的时间都正确(例如,将额外的分钟转换为小时?94:36->1:34:36(?

这里有一种方法。它当前进入一个新列,但您可以通过将'new time'更改为仅'time'来覆盖它。

import pandas as pd
data = { 'time': ['15:48','84:52','77:10','10:03'] }
df = pd.DataFrame (data, columns = ['time'])
min = df['time'].str.split(':').str[0].astype(int)
sec = df['time'].str.split(':').str[1].astype(int)
hrs = min//60
min = min%60
df['new time'] = hrs.map(str) + ":" + min.map(str) + ":" + sec.map(str)
print(df)

最新更新