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

如何将时间戳差值转为时长并制作跑者完赛时长堆叠柱状图?

时间戳转纯时长格式的实用方法

不管你用Excel、Python还是Tableau,核心都是把时间差转成纯数字的时长单位(比如分钟、小时),这样才能正常做堆叠柱状图,下面分工具给你具体操作:

Excel 操作步骤

  • 先确认起跑、结束时间列是「时间格式」(不是文本),如果是文本,先转成时间:=TIMEVALUE(单元格)
  • 计算纯数字时长(推荐用分钟,精度够且图表好处理):
    在空白单元格输入公式 =(结束时间单元格 - 起跑时间单元格)*1440,回车后得到的就是分钟数,比如跑者1的30分钟直接显示30,完美适配Y轴。
  • 要是想同时显示“X小时Y分钟”的文本,用公式:=TEXT(结束时间-起跑时间,"h""小时""m""分钟"""),但做图表时记得用数字版的时长,文本没法堆叠计算。

Python Pandas 处理代码

假设你的数据存在CSV里,先把时间列解析成日期时间格式,再算时长:

import pandas as pd

# 读数据,自动解析时间列
df = pd.read_csv("跑者数据.csv", parse_dates=["起跑时间", "结束时间"])

# 算完赛时长(转成分钟数,纯数字)
df["完赛时长(分钟)"] = (df["结束时间"] - df["起跑时间"]).dt.total_seconds() / 60

# 要转成“X小时Y分钟”文本的话
df["完赛时长_文本"] = df.apply(lambda row: f"{(row['结束时间']-row['起跑时间']).hours}小时{(row['结束时间']-row['起跑时间']).minutes}分钟", axis=1)

用完赛时长(分钟)这列当Y轴数据,配合日期X轴、跑者维度,就能生成堆叠柱状图。

Tableau 配置方法

  1. 把起跑、结束时间字段设置成「日期时间」类型;
  2. 新建计算字段,命名为「完赛时长(分钟)」,公式写:DATEDIFF('minute', [起跑时间], [结束时间]);
  3. 把「日期」拖到X轴,「完赛时长(分钟)」拖到Y轴,「跑者」拖到「颜色」或「标记」的堆叠选项里,直接生成你要的堆叠柱状图。

为啥会出现“3:00 AM”这种格式?

其实你算出来的不是时间戳,是时间差,只是工具默认把它当成了一天内的时间来显示,比如3小时的时间差就显示成凌晨3点。只要转成纯数字的时长单位,图表工具就能正确识别并堆叠。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:24:16