如何根据列值只删除PandasDataFrame中的相邻行(除一行外的所有行)?

c2e8gylq  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(140)

我有一个DataFrame,看起来像这样:

Column1  Column2 
0     cat        A 
1     cat        B 
2     cat        C 
3     dog        D 
4     dog        E 
5     cat        F

我想删除第1列中有重复值的所有连续行,只保留其中一行。因此,我想删除第1、2和4行,但我想保留第0、3和5行。如果我没有弄错的话,drop_duplicates几乎可以正常工作,但会删除第5行。猫和狗可能会在后面的行中多次出现,但我只想保留任何连续行中的一行。
我尝试了df.drop_duplicates(subset ='cat',keep ='first'),但是它删除了第5行。

xxslljrj

xxslljrj1#

您可以用途:

out = df.groupby(df['Column1'].ne(df['Column1'].shift()).cumsum()).head(1)

输出量:

Column1 Column2
0     cat       A
3     dog       D
5     cat       F

相关问题