【问题标题】:Pandas DataFrame drop duplicates keeping first 'x' occurences [duplicate]Pandas DataFrame 删除重复项,保持第一次出现“x”[重复]
【发布时间】:2019-02-19 07:40:26
【问题描述】:

我正在寻找的是一个与 pandas.DataFrame.drop_duplicates() 完全相同的函数,但它允许我不仅保留第一次出现,而且保留第一次出现的“x”次(比如 10 次)。有这样的东西存在吗? 感谢您的帮助!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    IIUC,一种方法是使用groupbyhead,选择前x 个出现。如文档中所述,head:

    返回每组的前 n 行。

    示例代码:

    x = 10
    df.groupby('col').head(x)
    

    其中col 是您要检查重复的列,x 是您希望为col 中的每个值保留的出现次数

    例如:

    In [81]: df.head()
    Out[81]:
       a         b
    0  3  0.912355
    1  3  2.091888
    2  3 -0.422637
    3  1 -0.293578
    4  2 -0.817454
    ....
    
    # keep 3 first instances of each value in column a:
    
    x = 3
    df.groupby('a').head(x)
    
    Out[82]:
       a         b
    0  3  0.912355
    1  3  2.091888
    2  3 -0.422637
    3  1 -0.293578
    4  2 -0.817454
    5  1  1.476599
    6  1  0.898684
    8  2 -0.824963
    9  2 -0.290499
    

    【讨论】:

    • 是的,这正是我想要的。它完美地解决了这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-11-23
    • 2016-09-10
    • 1970-01-01
    • 2014-12-14
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多