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

基于Pandas实现每5分钟时间窗口内重复ID去重的技术求助

解决Pandas中固定5分钟时间窗口内重复ID的移除问题

嗨,咱们来搞定这个用Pandas清理数据的需求吧——移除固定5分钟时间窗口内的重复ID,下面的步骤完全贴合你的预期结果:

步骤1:合并日期与时间为完整的datetime列

首先得把Date和Time两列合并成Pandas能识别的datetime类型,这是处理时间窗口的基础:

import pandas as pd

# 假设你的数据集存储在名为df的DataFrame中
df['datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])

步骤2:生成固定5分钟窗口的标记

用dt.floor('5min')方法把每条记录的时间向下取整到最近的5分钟起始点,这样同一个5分钟窗口内的所有记录会拥有相同的窗口标记:

df['5min_window'] = df['datetime'].dt.floor('5min')

举个例子:2012-01-01 00:01:00和2012-01-01 00:04:30都会被归到2012-01-01 00:00:00这个窗口,而2012-01-01 00:05:10则会被分到2012-01-01 00:05:00窗口。

步骤3:按ID和窗口分组,保留每组第一条记录

现在我们按ID和5min_window分组,每组只保留第一条记录——这样每个5分钟窗口内,同一个ID只会留下第一次出现的那条:

result_df = df.groupby(['ID', '5min_window'], as_index=False).first()

步骤4:整理输出结果(可选)

如果不需要中间生成的datetime和5min_window列,可以删掉它们,只保留你需要的原始列:

result_df = result_df[['ID', 'Date', 'Time']]

处理完之后,得到的结果就和你给出的示例完全一致啦:

  • ID12在00:00:00窗口内的两条记录只保留00:01:00的那条
  • ID13在00:00:00窗口内仅一条记录,直接保留
  • ID12在00:05:00窗口的00:05:10记录保留
  • ID12在00:10:00窗口的00:10:00记录保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:44:31