我有一个数据框列,其中包含以分钟为单位的视频时长:秒。不幸的是,如果分钟数超过60(例如94:36),则某些行的格式不正确。当我尝试使用格式字符串pd.to_datetime
运行%M:%S
时,出现一个错误,提示上述时间格式错误。
如何解决此问题,以便所有行的时间都是正确的(例如,将多余的分钟转换为小时?94:36-> 1:34:36)?
答案 0 :(得分:1)
这是解决问题的一种方法。目前,它进入了一个新列,但是您可以通过将'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)