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

如何在Pandas中仅对指定类别按连续事件保留首条去重?

Pandas实现自定义规则的去重需求

这是个很实用的自定义去重场景,针对不同事件类型做差异化处理,我来一步步帮你实现:

先明确核心规则

  • 仅对event_name列的fast_order类型做去重,process_now类型保留所有记录
  • 连续出现的fast_order为一组,每组只保留第一条记录
  • 始终保留首次出现的条目

第一步:构造原始数据集

先把你给出的原始数据转换成Pandas DataFrame:

import pandas as pd

data = {
    'User_id': [1,1,1,1,1,1,2,2,2,2,2,2,2,2,2],
    'event_name': [
        'process_now','process_now','process_now','fast_order','fast_order','process_now',
        'process_now','process_now','fast_order','fast_order','fast_order','process_now','fast_order','fast_order','process_now'
    ],
    'timestamp': [
        '08:00:01','08:00:02','08:00:03','08:00:04','08:00:05','08:00:06',
        '08:00:01','08:00:02','08:00:03','08:00:04','08:00:05','08:00:06','08:00:07','08:00:08','08:00:09'
    ]
}
df = pd.DataFrame(data)

第二步:实现自定义去重逻辑

核心思路是先识别每个用户下连续相同的事件分组,再对fast_order组只保留第一条:

# 1. 给每个用户的连续事件标记分组ID
# 原理:比较当前行和上一行的event_name,不同则分组ID+1,确保连续相同事件在同一组
df['group_id'] = (df['event_name'] != df.groupby('User_id')['event_name'].shift()).cumsum()

# 2. 拆分处理两种事件类型
# 保留所有process_now记录
process_now_df = df[df['event_name'] == 'process_now']
# 对fast_order按用户+分组ID取第一条
fast_order_first_df = df[df['event_name'] == 'fast_order'].groupby(['User_id', 'group_id']).first().reset_index()

# 3. 合并结果并按用户和时间排序
final_df = pd.concat([process_now_df, fast_order_first_df]) \
              .sort_values(by=['User_id', 'timestamp']) \
              .reset_index(drop=True) \
              .drop(columns='group_id')  # 去掉临时的分组ID列

验证结果

打印final_df就能得到你期望的输出:

User_id    event_name timestamp
0        1  process_now  08:00:01
1        1  process_now  08:00:02
2        1  process_now  08:00:03
3        1   fast_order  08:00:04
4        1  process_now  08:00:06
5        2  process_now  08:00:01
6        2  process_now  08:00:02
7        2   fast_order  08:00:03
8        2  process_now  08:00:06
9        2   fast_order  08:00:07
10       2  process_now  08:00:09

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:12:14