首页 > 解决方案 > 根据两列删除重复项

问题描述

我试图在 P 列中删除重复值,但要根据 S 列的值。我的意思是 S 列中的每个组。就像根据 S 组一样,有四组 1、2、3 和 4。所以根据第一组,我试图找到值 5、7、6 和第一个索引应该下降。

    S  A4  P
0   1   1  5
1   1   2  5
2   1   3  7
3   1   4  6
4   2   1  7
5   2   2  6
6   2   3  7
7   2   1  1
8   3   5  2
9   3   3  3
10  3   2  4
11  3   1  1
12  4   5  2
13  4   3  3
14  4   5  4
15  4   6  5

因此,不需要根据 S 组在 P 列的每个重复值。这是我要查找的搜索 df:

Search
    S  A4  P
0   1   1  5
1   1   3  7
2   1   4  6
3   2   1  7
4   2   2  6
5   2   1  1
6   3   5  2
7   3   3  3
8   3   2  4
9   3   1  1
10  4   5  2
11  4   3  3
12  4   5  5

标签: pythonpandasdataframepandas-groupbyapply

解决方案


drop_duplicates()subset和一起使用keep='first'

In [2335]: df.drop_duplicates(sub['S', 'P'], keep='first')
Out[2335]: 
    S  A4  P
0   1   1  5
2   1   3  7
3   1   4  6
4   2   1  7
5   2   2  6
7   2   1  1
8   3   5  2
9   3   3  3
10  3   2  4
11  3   1  1
12  4   5  2
13  4   3  3
14  4   5  4
15  4   6  5

推荐阅读