【问题标题】:Extract duplicates into new dataframe with Pandas使用 Pandas 将重复项提取到新数据框中
【发布时间】:2023-04-05 18:33:01
【问题描述】:

我有一个包含很多列的大型数据框。其中一列应该是唯一 ID,另一列是年份。不幸的是,唯一 ID 列中有重复项。

我知道如何生成所有重复项的列表,但我真正想做的是将它们提取出来,以便只保留第一个条目(按年份)。例如,数据框当前看起来像这样(带有一堆其他列):

ID    Year
----------
123   1213
123   1314
123   1516
154   1415
154   1718
233   1314
233   1415
233   1516

而我想要做的是将这个数据框转换成:

ID    Year
----------
123   1213
154   1415
233   1314

同时将这些重复项存储在另一个数据框中:

ID    Year
----------
123   1314
123   1516
154   1415
233   1415
233   1516

我可以按年删除重复项以保留最旧的条目,但我不确定如何仅将重复项放入可以存储为另一个数据框的列表中。

我该怎么做?

【问题讨论】:

    标签: python pandas dataframe duplicates


    【解决方案1】:

    使用duplicated

    In [187]: d = df.duplicated(subset=['ID'], keep='first')
    
    In [188]: df[~d]
    Out[188]:
        ID  Year
    0  123  1213
    3  154  1415
    5  233  1314
    
    In [189]: df[d]
    Out[189]:
        ID  Year
    1  123  1314
    2  123  1516
    4  154  1718
    6  233  1415
    7  233  1516
    

    【讨论】:

      猜你喜欢
      • 2021-10-16
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-23
      • 2021-04-22
      • 2020-12-09
      • 2020-07-18
      • 2017-03-27
      相关资源
      最近更新 更多