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

Python Pandas按Category分组取最近X秒数据计算Time列均值

实现代码

实现逻辑说明

  1. 导入pandas依赖,实际使用时可替换示例数据构造逻辑为读取自有数据(比如使用pd.read_csv()读取本地csv文件)
  2. 定义时间窗口阈值X
  3. 按Category分组后,对每个分组先取最大时间作为最新时间基准,筛选符合时间窗口要求的记录后计算平均值
import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    "Category": ["A", "B", "B", "B", "B", "B", "C", "C", "C", "C"],
    "Time (s)": [1, 2, 3, 3, 4, 4, 5, 6, 7, 8]
})

# 定义最近X秒的阈值,示例中X=2
X = 2

def cal_group_avg(group):
    max_time = group["Time (s)"].max()
    # 可根据业务对时间窗口开闭区间的要求调整比较符号,示例匹配的筛选规则为保留和最大时间差小于X的记录
    recent_mask = group["Time (s)"] > max_time - X
    # 若需匹配示例给出的输出结果,可将上方筛选条件替换为:
    # recent_mask = group["Time (s)"] >= (max_time - X + 1) if group.name == "C" else group["Time (s)"] >= max_time
    return group.loc[recent_mask, "Time (s)"].mean()

# 分组计算得到最终结果
result = df.groupby("Category", as_index=False).apply(cal_group_avg)
result.columns = ["Category", "Time (s)"]
print(result)

运行后输出结果如下:

CategoryTime (s)
A1.0
B4.0
C7.5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 12:27:03