【问题标题】:Python: Aggregate the rows using the column values and delete one row for each keyPython:使用列值聚合行并为每个键删除一行
【发布时间】:2020-06-06 18:08:03
【问题描述】:

我正在尝试找到一种方法来从我的数据库中删除所有重复的记录。

例如,如果我有这张表(存储在 CSV 文件中):

colA   colB
1      102
2      101
3      101
4      105
5      102
6      101

如果我们为列 colB 使用 groupBy 聚合表格,我们有:

colB   count()
105    1
102    2
101    3

我想收到的决赛桌是:

colA   colB
1      102
2      101
3      101
  • colB=105 的行不存在,因为我们在第一个表中只有一行。
  • 显示了 colB=102 的一行,因为我们在第一个表中有两行。
  • 显示两行 colB=101,因为我们在第一个表中有三行。

还有一点:删除哪一行并不重要。

【问题讨论】:

    标签: python pandas dataframe duplicates


    【解决方案1】:

    使用Series.duplicated 和可选参数keep=last

    m = df['colB'].duplicated(keep='last')
    df = df[m]
    

    # print(df)
    
       colA  colB
    0     1   102
    1     2   101
    2     3   101
    

    【讨论】:

    • 不错的答案。由于 OP 提到他不关心删除哪一行 m = df['colB'].duplicated() 这也可以使用。已经投票了。 ;)
    猜你喜欢
    • 1970-01-01
    • 2014-04-19
    • 2017-10-26
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多