只有当它们在下一次迭代中通过 pandas 重复时,我如何才能删除重复项

How can i remove duplicates only when they repeat themselves in the next iteration through pandas

我的问题有点混乱,所以最好展示一下我的输入和输出是什么样子的。 我已经尝试了一段时间,但每次都走到了死胡同。

输入:

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

输出:

A B
1 a
3 b
5 c
7 a
9 b
10 c

你必须像 itertools.groupby 一样分组。要在 pandas 中做类似的事情,请检查下一个元素是否不等于当前元素。我们可以使用 pd.Series.shift + pd.Series.ne + pd.Series.cumsum.

grps = df['B'].ne(df['B'].shift()).cumsum()
df.groupby(grps).first()

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