【问题标题】:drop duplicates according to two columns [duplicate]根据两列删除重复项[重复]
【发布时间】:2021-02-09 05:02:17
【问题描述】:

我正在尝试删除 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

【问题讨论】:

    标签: python pandas dataframe pandas-groupby apply


    【解决方案1】:

    drop_duplicates()subsetkeep='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
    

    【讨论】:

    • 但是如果 P 的行与另一个元素相同但在其他组中,例如第三组元素,我不想删除。我的意思是,如果我使用 drop_duplicates 和子集,例如我会也丢失 P 的第 15 行最后一个元素,但我不想丢失它。
    • 你明白我的意思了吗?
    • 在我的示例中,15th 行没有丢失。
    • 对不起我的错 :-)
    • 非常感谢。我对编程和 Python 有点陌生,所以感谢您的帮助。我很感激你。
    猜你喜欢
    • 2017-03-02
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 2021-12-27
    • 1970-01-01
    • 2016-09-16
    • 2017-11-26
    相关资源
    最近更新 更多