【发布时间】:2018-02-19 15:25:49
【问题描述】:
所以,我有一个在运行时生成的文件。文件示例如下所示:
ID,Class_id,Column_A,Column_B,Column_C,Column_D,Mask
1,987,vermont,CA,450,liase,2
2,456,WB,cloo,452,var,1
3,987,CA,Cp,1000000,liase,2
4,456,SA,Cap,98376,clop,1
5,765,IN,clas,543,king,2
6,987,SA,CLA,200,loop,2
7,456,BEG,loop,876,var,1
如您所见,Class_id 存在重复元素。 Mask 还指定了文件中可以存在的重复元素的最大数量。
我要做的是逐个删除重复元素的最后一次出现,直到重复记录的数量与其Mask值相同。
如果是上述文件,
Class_id 中的 987 次出现了 3 次。它的Mask 值为 2。因此它最多只能出现 2 次。所以我需要删除最后一次出现的 987,这是第 6 条记录。文件中记录的顺序在这里无关紧要。
我想要得到的输出是这样的:
ID,Class_id,Column_A,Column_B,Column_C,Column_D,Mask
1,987,vermont,CA,450,liase,2
3,987,CA,Cp,1000000,liase,2
2,456,WB,cloo,452,var,5
5,765,IN,clas,543,king,2
我浏览了这个网站,但找不到可行的解决方案。这些是我引用的网站;
Pandas: remove reverse duplicates from dataframe Find Duplicates limited to multiple ranges - pandas python pandas remove duplicate columns How to conditionally remove duplicates from a pandas dataframe Drop all duplicate rows in Python Pandas
我注意到 Python 有一个 drop_duplicates 函数。坚果我如何限制要删除的重复项的数量?
有人可以帮助这里的新手吗?谢谢。
【问题讨论】:
标签: python python-2.7 pandas