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

如何使用pandas仅删除相邻连续重复的行

解决pandas删除连续重复行(仅保留每组首行)的方法

你需要的是保留B列连续相同值组的第一条记录,删除同组内后续的连续重复行,非连续重复的记录不受影响,直接使用pandas的shift()方法做逐行对比即可实现。

import pandas as pd

# 构造输入数据
df = pd.DataFrame({
    'A': [1,2,3,4,5,6,7,8,9,10],
    'B': ['a','a','b','b','c','c','a','a','b','c']
})

# 核心筛选逻辑:只保留B列和上一行值不相等的行(即每个连续重复组的第一行)
res = df[df['B'].ne(df['B'].shift())]

# 若需要重置输出结果的行索引,可添加下方代码
# res = res.reset_index(drop=True)

print(res)

运行后输出的结果和你要求的期望输出完全一致:

A  B
0   1  a
2   3  b
4   5  c
6   7  a
8   9  b
9  10  c

代码逻辑说明

  • df['B'].shift() 会将B列整体向下偏移一行,原第一行对应的值变为空值
  • ne() 方法是逐行对比当前B列值和偏移后的B列值,不相等则返回True,相等返回False
  • 布尔索引筛选出所有返回True的行,也就是每个连续重复组的第一条记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:57:03