删除 Pandas DataFrame 中重复超过 5 次的值

Removing values that repeat more than 5 times in Pandas DataFrame

我正在使用 pandas 处理 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

显示 elyase 的回答如何也适用于 DataFrame(不是系列)。

>> df = pd.DataFrame(np.array([[1,1,3,1,1,1,1,1,2]]).transpose(),columns = ["col"])
>> df.groupby((df["col"].shift() != df["col"]).cumsum()).filter(lambda x: len(x) < 5)
    col
 0    1
 1    1
 2    3
 8    2