在Pandas DataFrame中删除重复超过5次的值
问题内容:
我正在使用熊猫处理csv文件。如果它们连续出现,我需要删除一些重复的值。我知道有一个重复的函数可以删除第二次重复的任何值,而不管它们出现在哪里。但是,只有当列的值重复超过5个连续行时,我才必须删除数据。例如,
1
1
3
1
1
1
1
1
2
在这里,我不想删除B顶部的两个1,而只删除连续重复5次的1。关于我应该如何处理的任何指示?
问题答案:
应该这样做:
>> df = pd.Series([1,1,3,1,1,1,1,1,2])
>> df.groupby((df.shift() != df).cumsum())\
.filter(lambda x: len(x) < 5)
0 1
1 1
2 3
8 2