通过熊猫数据框中的3列查找重复项

时间:2020-08-07 21:24:06

标签: python pandas

我有以下熊猫数据框(简短示例)

           EIN  file_num  year
0     46012492       838  2017
1     46012492      1790  2016
2     46012492      3757  2015
3     46012492      4536  2014
4     46012492      6187  2013
..         ...       ...   ...
559  980634789      5095  2015
560  980634789      5653  2014
561  980634789      5800  2014
562  980634789      6750  2013
563  980634789      8133  2012

我需要删除具有相同EIN和相同年份的文件。因此,例如,您可以看到行560和561包含EIN为980634789且年份为2014的文件。我需要删除其中之一(这并不重要,但最好是file_num最小的那个。

我该怎么做?谢谢!

2 个答案:

答案 0 :(得分:1)

首先,您需要sort_values,然后是drop_duplicates

function myFunction() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('Sheet1');
  const parsed = parseInt(sheet.getRange('C3:C330').getValue());
  if (isNaN(parsed)) {
    return 0;
  }
  return parsed * -100;
}

答案 1 :(得分:1)

您可以使用pandas.DataFrame.drop_duplicates

如果您不介意保留哪一个:

df.drop_duplicates(subset=["EIN", "year"])

如果您想保留最小的file_num:

df = df.sort_values(by=["file_num"])
df.drop_duplicates(subset=["EIN", "year"], keep="first")