如何在python pandas中按列删除每个组的最后一个重复行

时间:2013-06-05 09:48:29

标签: python pandas

我有一个包含Date,Source1等列名的数据框。如何只删除所有重复项中的最后一个重复行。

   Date         |     Source1
----------------|---------------------
3-Sep-11        |       JKY    
3-Sep-11        |       CYK
3-Sep-11        |       JKY
3-Sep-11        |       JKY
3-Sep-11        |       XYZ
4-Sep-11        |       JKY
4-Sep-11        |       CYK 

我希望得到结果

   Date         |     Source1
----------------|---------------------
3-Sep-11        |       JKY    
3-Sep-11        |       CYK
3-Sep-11        |       JKY
3-Sep-11        |       XYZ
4-Sep-11        |       JKY
4-Sep-11        |       CYK 

1 个答案:

答案 0 :(得分:0)

这就是事情。

s = """
   Date         |     Source1
----------------|---------------------
3-Sep-11        |       JKY    
3-Sep-11        |       CYK
3-Sep-11        |       JKY
3-Sep-11        |       JKY
3-Sep-11        |       XYZ
4-Sep-11        |       JKY
4-Sep-11        |       CYK 
"""

had_duplicate = False
stack = []

for e in reversed(s.splitlines()):
    if not had_duplicate and e in stack :
        had_duplicate = True
        continue
    stack.append(e)

print('\n'.join(reversed(stack)))