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

如何提取pandas DataFrame每5分钟区间Concentr 1最大值及对应行数据

实现方案

你可以直接用pandas原生的groupby+idxmax组合实现需求,全程不需要额外的合并操作,逻辑更简洁,效率也更高:

import pandas as pd

# 1. 转换时间列为datetime格式
df['Time'] = pd.to_datetime(df['Time'])

# 2. 按5分钟区间分组,取每个区间内Concentr 1最大值对应的行索引
max_row_idx = df.groupby(df['Time'].dt.floor('5T'))['Concentr 1'].idxmax()

# 3. 直接从原表提取对应行,重置索引即可得到结果
result = df.loc[max_row_idx].reset_index(drop=True)

# 可选:如果需要保留时间列的字符串格式
result['Time'] = result['Time'].dt.strftime('%H:%M:%S')

方案优势

  • 全程只有3步核心操作,没有冗余的中间表关联逻辑,大幅降低出错概率
  • 所有操作都是pandas原生优化的向量化操作,数据量越大,相比你原来的合并方案性能优势越明显
  • 可灵活处理同区间多最大值的场景:默认取第一个出现的最大值行,若需取最后一个,把idxmax()替换为nlargest(1).index[-1]即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:45:04