如何在Python中将DataFrame的HH:MM:SS.SS格式时间转为秒数?
解决HH:MM:SS.SS格式时间转秒数的问题
你的报错原因很明确:原函数尝试把带小数的秒字符串(比如'10.951')转成整数,自然会失败。下面提供两种可行的解决方法:
方法一:修改自定义函数
调整函数逻辑,将秒部分转为浮点数而非整数,保留小数精度:
def time_convert(x): h, m, s = x.split(':') return int(h) * 3600 + int(m) * 60 + float(s) df['Time'] = df['Time'].apply(time_convert)
这种方法逻辑直观,适合小数据量场景。
方法二:使用Pandas内置方法(推荐)
利用Pandas的时间处理能力,更高效且代码更简洁,尤其适合大数据集:
import pandas as pd # 将Time列转换为datetime类型,指定格式匹配带小数的秒 df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S.%f') # 计算从当日0时0分0秒开始的总秒数(含小数) df['Time'] = df['Time'].dt.total_seconds()
运行后,你的示例数据第一行15:15:10.951会被转换为54910.951,完全符合需求。
内容的提问来源于stack exchange,提问作者Manish Gurung
相关产品推荐
相关产品推荐

