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

Bar*_*ich 5 python dataframe pandas

我有一个 Pandas 数据框,我想检查每一行是否在特定列中具有相同的值(我们称之为 porduct_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
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 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
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案是否仅删除一个连续的重复项?如果 A 中有两个以上具有相同值的连续行怎么办? (2认同)