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

如何在Pandas时序DataFrame中按分组计算累计耗时(分钟)

Pandas按分组计算累计耗时(分钟)

需求:对示例DataFrame按name字段分组,分别计算每组内从第一条记录开始的累计耗时,单位为分钟。

示例输入DataFrame:

import pandas as pd

data = pd.DataFrame(
    {
        "name": ["foo", "foo", "foo", "bar", "bar", "bar"],
        "time": [
            pd.to_datetime("2021-06-01 00:00:00"),
            pd.to_datetime("2021-06-01 00:15:00"),
            pd.to_datetime("2021-06-01 00:30:00"),
            pd.to_datetime("2021-06-01 00:00:00"),
            pd.to_datetime("2021-06-01 01:00:00"),
            pd.to_datetime("2021-06-01 01:30:00"),
        ],
    }
)

解决方法

通过groupby按name分组后,对每组的time列计算与组内第一条时间的差值,再将差值转换为分钟数:

# 新增累计耗时列
data['elapsed_min'] = data.groupby('name')['time'].apply(
    lambda x: (x - x.iloc[0]).dt.total_seconds() // 60
).astype(int)

预期输出

name                time  elapsed_min
0  foo 2021-06-01 00:00:00            0
1  foo 2021-06-01 00:15:00           15
2  foo 2021-06-01 00:30:00           30
3  bar 2021-06-01 00:00:00            0
4  bar 2021-06-01 01:00:00           60
5  bar 2021-06-01 01:30:00           90

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:22:14