Pandas DataFrame - 删除在特定列与前一行相同值的行
我有一个 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