首页 >后端开发 >Python教程 >如何有效删除 Pandas 中的连续重复项?

如何有效删除 Pandas 中的连续重复项?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 17:29:02583浏览

How to Efficiently Drop Consecutive Duplicates in Pandas?

有效删除 Pandas 中的连续重复项

使用 pandas DataFrame 时,通常需要删除重复值。然而,内置的 drop_duplicates() 方法会删除重复值的所有实例,包括连续的重复项。对于只需要删除连续重复项的情况,有更有效的方法可用。

一种方法涉及使用 shift() 函数。通过将 DataFrame 与其移位版本 (a.shift(-1)) 进行比较,可以创建一个布尔掩码来标识连续重复发生的位置。然后,可以使用此掩码仅选择唯一值,如以下示例所示:

a.loc[a.shift(-1) != a]

另一种方法利用 diff() 函数。它计算行之间的差异,可用于识别连续的重复项。然而,对于大型数据集,它比shift()方法慢。

使用:

a.loc[a.diff() != 0]

原始答案建议使用shift(),周期为-1,但正确的用法是shift(1)(或简称shift()),因为默认的移位周期为1。此修改确保仅返回第一个连续值:

a.loc[a.shift(1) != a]

shift() 和 diff()方法提供了在 Pandas 中删除连续重复项的有效方法,应根据具体上下文和性能要求进行考虑。

以上是如何有效删除 Pandas 中的连续重复项?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn