有效删除 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中文网其他相关文章!