You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中处理字符串格式运动耗时数据以开展统计计算

解决方法

你之前使用的pd.to_datetime是用来转换时间点类型的接口,会默认补充年月日属性,不适用于时长维度的计算。Pandas专门提供了pd.to_timedelta接口处理时间长度类数据,可直接适配你给出的%H:%M:%S格式的耗时字符串。

核心转换代码

df_test['Elapsed time'] = pd.to_timedelta(df_test['Elapsed time'])

转换后的数据为timedelta类型,可直接用于时长类的统计计算。

常用指标计算示例

  • 计算所有运动的平均耗时:
avg_time = df_test['Elapsed time'].mean()

输出会直接返回时分秒格式的平均时长,你给出的示例数据计算结果为0 days 00:28:36.666666666,如果需要去掉前缀的0 days展示,可使用str.split处理:avg_time.astype(str).split(' ')[-1]

  • 转换为秒级数值做自定义计算:
    如果需要计算跑步暂停时长、环比差值等自定义指标,可以先把时长转换为总秒数的数值列,方便做数值运算:
df_test['elapsed_seconds'] = df_test['Elapsed time'].dt.total_seconds()

转换后你的示例数据第一条00:22:05会转为1325的整数格式,可直接做加减乘除运算

  • 计算最长和最短运动的时长差:
diff_time = df_test['Elapsed time'].max() - df_test['Elapsed time'].min()

完整测试代码

import pandas as pd

# 模拟你的输入数据
data = {'Elapsed time': ['00:22:05', '00:30:34', '00:30:31', '00:37:19', '00:28:43', '00:22:08']}
df_test = pd.DataFrame(data)

# 转换为timedelta时长类型
df_test['Elapsed time'] = pd.to_timedelta(df_test['Elapsed time'])

# 计算平均耗时
print("平均耗时:", df_test['Elapsed time'].mean())
# 输出:平均耗时: 0 days 00:28:36.666666666

# 转换为总秒数列
df_test['elapsed_seconds'] = df_test['Elapsed time'].dt.total_seconds()
print(df_test)

内容的提问来源于stack exchange,提问作者kosekk_g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:06:02