我有一个数据帧列,其中包含以分钟:秒为单位的视频持续时间。不幸的是,有些行的格式不正确,其中分钟数大于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)