Pandas DataFrame - 删除在特定列与前一行相同值的行

5 投票
1 回答
6074 浏览
提问于 2025-04-18 14:40

我有一个 pandas 数据框(dataframe),我想检查每一行,看看某一列(我们称它为 product_type)是否有相同的值。如果有相同的值,我就想把它删除。换句话说,在一组连续的行中,如果某一列的值是一样的,我只想保留其中的一行。

举个例子,如果列 A 是我们不想要连续重复值的那一列:

input =  
A    B

    0  1    1
    0  2    2
    2  1   10
    2  2   20
    0  11  100
    5  2  200

output =  
A    B

    0  1    1
    2  1   10
    0  11  100
    5  2  200

1 个回答

5

这有点复杂,不过你可以试试这样做:

>>> df.groupby((df["A"] != df["A"].shift()).cumsum().values).first()
   A   B    C
1  0   1    1
2  2   1   10
3  0  11  100
4  5   2  200

撰写回答