只有当它们在下一次迭代中通过 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
我的问题有点混乱,所以最好展示一下我的输入和输出是什么样子的。 我已经尝试了一段时间,但每次都走到了死胡同。
输入:
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