Удаление дубликатов внутри многоиндексного df с пробелами » n » между ними

#python #pandas #duplicates #analytics

Вопрос:

Я хочу иметь возможность pid динамически удалять значения на основе некоторого расстояния n . Поэтому, если я сделаю n=2 это, я хотел бы удалить дубликаты в пределах первых 2 значений из первого отдельного значения, но только в пределах индекса первого уровня ( id )

n = 2

До:

                        pid    time    
id           vid      

id1         vis_id1    pid1    t_0      
            vis_id1    pid2    t_1
            vis_id1    pid1    t_2
            vis_id1    pid2    t_3
            vis_id1    pid1    t_4       

id2         vis_id2    pid1    t_3      
            vis_id2    pid2    t_4      
            vis_id2    pid2    t_5      
            vis_id2    pid2    t_6
            vis_id2    pid2    t_7 
 

После

                        pid    time    
 id           vid      

id1         vis_id1    pid1    t_0      
            vis_id1    pid2    t_1       

id2         vis_id2    pid1    t_3      
            vis_id2    pid2    t_4
            vis_id2    pid2    t_7      
 

Моя логика в psudo-коде:

 for every id in my df:
    if duplicate exists within len(n) of a pid:
       drop row
    else:
       pass