Слишком усердно пытаешься угадать, чего ты хочешь.
ПРИМЕЧАНИЕ: при использовании аргумента Pandas inplace
, где он доступен, NO гарантирует, что новый DataFrame
не будет создан в памяти.На самом деле, он вполне может создать новый DataFrame
в памяти и заменить старый за кадром.
from collections import defaultdict
def f(s):
c = defaultdict(int)
for i, x in zip(s.index[::-1], s.values[::-1]):
c[x] += 1
if c[x] > 3:
yield i
df.drop([*f(df.Group)], inplace=True)
df
value Group something
0 a 1 1
1 b 1 2
2 c 1 4
5 x 2 5
6 d 2 3
7 e 3 5
8 d 2 10
9 a 3 5