【问题标题】:How to delete duplicates, but keep the first instance and a blank cell for the duplicates in Pandas?如何删除重复项,但在 Pandas 中为重复项保留第一个实例和一个空白单元格?
【发布时间】:2016-09-28 03:23:57
【问题描述】:

我有一个 pandas DataFrame,我正在做一个 groupby(['target']).count()。这工作正常。但是,对于每个组,我想要的一件事是 ID 列中唯一元素的数量。

我想要做的是,对于 ID 列,除任何 ID 值的第一个副本之外的所有内容(ID 对组是唯一的,所以我不必担心这个问题)。然后, groupby().count() 会给我每个组中唯一 ID 的数量......但我不知道该怎么做。

【问题讨论】:

  • 或者你可以使用.nunique()
  • 这给了我作为一个整体独特事物的数量。不是每组。我需要每组
  • nunique 也在 groupby 对象上定义。你可以做df.groupby('target')['ID'].nunique()
  • Alberto,你能把这个作为答案发布,以便我接受吗?谢谢。那确实奏效了。

标签: python pandas dataframe


【解决方案1】:

DataFrame.duplicated() 方法适用于此处,如果您想按照您描述的方式进行操作。它可以返回一个序列,其中第一次出现的 ID 为 False,其余的为 True。然后,您可以使用它作为掩码将重复的 ID 设置为空。

见:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2020-12-14
    • 2022-12-29
    相关资源
    最近更新 更多