如何计算pandas DataFrame中字符串格式时间列的平均值?
计算pandas DataFrame中字符串时间列的平均值
步骤1:将字符串时间转换为时间差类型
首先要把字符串格式的时间转换成pandas可计算的timedelta类型,用pd.to_timedelta()函数就能直接解析HH:MM:SS.sss格式的字符串:
import pandas as pd times = ['00:00:01.111', '00:00:02.222', '00:03:33.333', '04:44:44.444'] df = pd.DataFrame({'Times': times}) # 新增时间差列用于计算 df['TimeDelta'] = pd.to_timedelta(df['Times'])
步骤2:计算时间平均值
转换完成后,直接对TimeDelta列调用mean()方法即可得到所有时间的平均值:
avg_time = df['TimeDelta'].mean() print(avg_time) # 输出结果:01:11:05.277500
可选:将平均值转回字符串格式
如果需要和原列格式一致(保留三位小数),可以对结果做简单格式化:
# 拆分秒数部分,仅保留三位小数 avg_time_str = f"{str(avg_time).split('.')[0]}.{str(avg_time).split('.')[1][:3]}" print(avg_time_str) # 输出结果:01:11:05.277
内容的提问来源于stack exchange,提问作者Anna Ortega
相关产品推荐
相关产品推荐

