python - 删除已排序 DataFrame 中的相邻重复项
问题描述
之前已经讨论过删除相邻的重复项,但仅在此处的直接相邻(上/下一行)方面进行了讨论。
我有以下数据框:
df = pd.DataFrame(data={"item_no": [11, 4, 4, 4, 7, 8, 7, 11, 11, 5, 5, 6, 4], "time": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]})
df
:
item_no time
0 11 1
1 4 2
2 4 3
3 4 4
4 7 5
5 8 6
6 7 7
7 11 8
8 11 9
9 5 10
10 5 11
11 6 12
12 4 13
它按time
列排序(将其想象为时间序列)。我需要删除item_no
列中的相邻重复项,只保留第一个条目。
预期输出:
item_no time
0 11 1
1 4 2
2 7 5
3 8 6
4 7 7
5 11 8
6 5 10
7 6 12
8 4 13
可以看出,应该能够删除任意数量的相邻重复项。我知道我可以逐行迭代,并检查前一个item_no
是否相同。但我正在寻找一种有效的解决方案,因为这将应用于数百万行。
解决方案
请试试
df[df.item_no!=df.item_no.shift(1)]
item_no time
0 11 1
1 4 2
4 7 5
5 8 6
6 7 7
7 11 8
9 5 10
11 6 12
12 4 13
推荐阅读
- windows-10 - Windows 10 kiosk 模式:启动桌面应用程序但无法设置音量
- java-11 - 基于 POJO 对象初始化 HikariCP
- java - 在 JDialog 中鼠标单击无法识别
- python - python logging 对不同文件上的多个记录器使用相同的处理程序
- python - 尝试单击“a”标签时出错 - Selenium Python
- c++ - 在VS C++中单击文本框时如何使文本消失?
- gradle - 即使 grails-wrapper.jar 更新,Grails 也无法工作
- javascript - 如何使用 JavaScript 从另一个函数中停止 array.some()?
- excel - 另一个宏仅适用于调试步骤模式问题
- java - 如何在不使用第三方的情况下使用 Java 将多个图像转换为单个 tiff 文件?(也不能使用Image.io)