【问题标题】:Get rows based on distinct values from one column根据第 2 列的不同值获取行
【发布时间】:2021-07-08 13:31:15
【问题描述】:

我是熊猫的新手,尝试在谷歌上搜索但仍然没有运气。如何通过 column2 中的不同值获取行?

例如,我有下面的数据框:

>>> df
COL1   COL2
a.com  22
b.com  45
c.com  34
e.com  45
f.com  56
g.com  22
h.com  45

我想根据 COL2 中的唯一值获取行

>>> df
COL1  COL2
a.com 22
b.com 45
c.com 34
f.com 56

那么,我怎样才能得到它?如果有人能提供任何帮助,我将不胜感激。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用drop_duplicates 指定列COL2 来检查重复项:

    df = df.drop_duplicates('COL2')
    #same as
    #df = df.drop_duplicates('COL2', keep='first')
    print (df)
        COL1  COL2
    0  a.com    22
    1  b.com    45
    2  c.com    34
    4  f.com    56
    

    您也可以只保留最后一个值:

    df = df.drop_duplicates('COL2', keep='last')
    print (df)
        COL1  COL2
    2  c.com    34
    4  f.com    56
    5  g.com    22
    6  h.com    45
    

    或删除所有重复项:

    df = df.drop_duplicates('COL2', keep=False)
    print (df)
        COL1  COL2
    2  c.com    34
    4  f.com    56
    

    【讨论】:

    • 抱歉!我离开了 2 天
    • 面临同样的问题,解决方案效果很好,但我需要先按相关列对数据进行排序,然后再删除重复项
    • 我不得不做df = df.drop_duplicates(['COL2'])。注意'COL2'[]里面
    猜你喜欢
    • 1970-01-01
    • 2021-03-31
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多